From 4642a149fad27264b2751e8288fffdfb4493e7ba Mon Sep 17 00:00:00 2001 From: arq5x <arq5x@virginia.edu> Date: Wed, 9 Apr 2014 10:02:47 -0400 Subject: [PATCH] [ENH] all shuffle with -incl to follow data distribution --- Makefile | 2 +- src/shuffleBed/shuffleBed.cpp | 51 +- src/shuffleBed/shuffleBedMain.cpp | 2 - src/utils/bedFile/bedFile.cpp | 14 + src/utils/bedFile/bedFile.h | 4 + test/shuffle/excl.bed | 9 + test/shuffle/incl.bed | 9 + test/shuffle/simrep.bed | 1000 +++++++++++++++++++++++++++++ test/shuffle/test-shuffle.sh | 127 ++++ 9 files changed, 1189 insertions(+), 29 deletions(-) create mode 100644 test/shuffle/excl.bed create mode 100644 test/shuffle/incl.bed create mode 100644 test/shuffle/simrep.bed create mode 100644 test/shuffle/test-shuffle.sh diff --git a/Makefile b/Makefile index 26767488..1890fa26 100644 --- a/Makefile +++ b/Makefile @@ -138,7 +138,7 @@ clean: .PHONY: clean test: all - @cd test; sh test.sh + @cd test; bash test.sh .PHONY: test diff --git a/src/shuffleBed/shuffleBed.cpp b/src/shuffleBed/shuffleBed.cpp index 518e2378..9d6a2d1e 100644 --- a/src/shuffleBed/shuffleBed.cpp +++ b/src/shuffleBed/shuffleBed.cpp @@ -74,15 +74,24 @@ BedShuffle::BedShuffle(string &bedFile, string &genomeFile, if (_haveInclude) { _include = new BedFile(includeFile); - _include->loadBedFileIntoMapNoBin(); - - _numIncludeChroms = 0; - masterBedMapNoBin::const_iterator it = _include->bedMapNoBin.begin(); - masterBedMapNoBin::const_iterator itEnd = _include->bedMapNoBin.end(); - for(; it != itEnd; ++it) { - _includeChroms.push_back(it->first); - _numIncludeChroms++; + + // the user wants to choose the chromosome randomly first + if (_chooseChrom) { + _include->loadBedFileIntoMapNoBin(); + _numIncludeChroms = 0; + masterBedMapNoBin::const_iterator it = _include->bedMapNoBin.begin(); + masterBedMapNoBin::const_iterator itEnd = _include->bedMapNoBin.end(); + for(; it != itEnd; ++it) { + _includeChroms.push_back(it->first); + _numIncludeChroms++; + } } + // thue user wants the intervals shuffled accordingly to the + // chrom distribution in the -incl file. + else + { + _include->loadBedFileIntoVector(); + } } if (_haveExclude == true && _haveInclude == false) @@ -449,8 +458,14 @@ void BedShuffle::ChooseLocusFromInclusionFile(BED &bedEntry) { CHRPOS randomStart; BED includeInterval; - if (_sameChrom == false) { - + // choose an -incl interval randomly. + if (_chooseChrom == false) { + includeInterval = _include->bedList[rand() % _include->bedList.size()]; + bedEntry.chrom = includeInterval.chrom; + } + // choose a chromosome randomly from the -incl file. then choose an + // interval from that chrom randomly. + else { // grab a random chromosome from the inclusion file. randomChrom = _includeChroms[rand() % _numIncludeChroms]; // get the number of inclusion intervals for that chrom @@ -462,22 +477,6 @@ void BedShuffle::ChooseLocusFromInclusionFile(BED &bedEntry) { bedEntry.chrom = randomChrom; } - else { - if ( _include->bedMapNoBin.find(chrom) != _include->bedMapNoBin.end() ) - { - // get the number of inclusion intervals for the original chrom - size_t size = _include->bedMapNoBin[chrom].size(); - // grab a random interval on the chosen chromosome. - includeInterval = _include->bedMapNoBin[chrom][rand() % size]; - } - else { - cerr << "Error, line " << _bed->_lineNum - << ": the requested chromosome (" - << chrom - << ") cannot " - << "be found in the -incl file " << endl; - } - } randomStart = includeInterval.start + rand() % (includeInterval.size()); bedEntry.start = randomStart; bedEntry.end = randomStart + length; diff --git a/src/shuffleBed/shuffleBedMain.cpp b/src/shuffleBed/shuffleBedMain.cpp index c53dad50..fe49049d 100644 --- a/src/shuffleBed/shuffleBedMain.cpp +++ b/src/shuffleBed/shuffleBedMain.cpp @@ -89,7 +89,6 @@ int shuffle_main(int argc, char* argv[]) { else if(PARAMETER_CHECK("-incl", 5, parameterLength)) { if ((i+1) < argc) { haveInclude = true; - chooseChrom = true; includeFile = argv[i + 1]; i++; } @@ -173,7 +172,6 @@ void shuffle_help(void) { cerr << "\t-incl\t" << "Instead of randomly placing features in a genome, the -incl" << endl; cerr << "\t\toptions defines a BED/GFF/VCF file of coordinates in which " << endl; cerr << "\t\tfeatures in -i should be randomly placed (e.g. genes.bed). " << endl; - cerr << "\t\t- NOTE: Forces use of -chromFirst (see below)." << endl << endl; cerr << "\t-chrom\t" << "Keep features in -i on the same chromosome."<< endl; cerr << "\t\t- By default, the chrom and position are randomly chosen." << endl; diff --git a/src/utils/bedFile/bedFile.cpp b/src/utils/bedFile/bedFile.cpp index ea993aff..7c1ae8dc 100644 --- a/src/utils/bedFile/bedFile.cpp +++ b/src/utils/bedFile/bedFile.cpp @@ -748,3 +748,17 @@ void BedFile::loadBedFileIntoMapNoBin() { sort(m->second.begin(), m->second.end(), sortByStart); } } + +void BedFile::loadBedFileIntoVector() { + + BED bedEntry; + + Open(); + while (GetNextBed(bedEntry)) { + if (_status == BED_VALID) { + bedList.push_back(bedEntry); + } + } + Close(); +} + diff --git a/src/utils/bedFile/bedFile.h b/src/utils/bedFile/bedFile.h index 37d8dda7..440986c0 100644 --- a/src/utils/bedFile/bedFile.h +++ b/src/utils/bedFile/bedFile.h @@ -433,6 +433,9 @@ public: // load a BED file into a map keyed by chrom. value is vector of BEDs void loadBedFileIntoMapNoBin(); + // load a BED file into a vector of BEDs + void loadBedFileIntoVector(); + // Given a chrom, start, end and strand for a single feature, // search for all overlapping features in another BED file. // Searches through each relevant genome bin on the same chromosome @@ -487,6 +490,7 @@ public: masterBedCovMap bedCovMap; masterBedCovListMap bedCovListMap; masterBedMap bedMap; + bedVector bedList; masterBedMapNoBin bedMapNoBin; BedLineStatus _status; diff --git a/test/shuffle/excl.bed b/test/shuffle/excl.bed new file mode 100644 index 00000000..c9300e65 --- /dev/null +++ b/test/shuffle/excl.bed @@ -0,0 +1,9 @@ +chr1 0 10000000 +chr1 10000000 20000000 +chr1 20000000 30000000 +chr1 30000000 400000000 +chr1 40000000 500000000 +chr2 0 100000000 +chr3 0 100000000 +chr4 0 100000000 +chr5 0 100000000 diff --git a/test/shuffle/incl.bed b/test/shuffle/incl.bed new file mode 100644 index 00000000..68f76c33 --- /dev/null +++ b/test/shuffle/incl.bed @@ -0,0 +1,9 @@ +chr1 0 1000000 +chr1 1000000 2000000 +chr1 2000000 3000000 +chr1 3000000 4000000 +chr1 4000000 5000000 +chr2 0 1000000 +chr3 0 1000000 +chr4 0 1000000 +chr5 0 1000000 diff --git a/test/shuffle/simrep.bed b/test/shuffle/simrep.bed new file mode 100644 index 00000000..7d620fcd --- /dev/null +++ b/test/shuffle/simrep.bed @@ -0,0 +1,1000 @@ +chr1 10000 10468 trf 789 +chr1 10627 10800 trf 346 +chr1 10757 10997 trf 434 +chr1 11225 11447 trf 273 +chr1 11271 11448 trf 187 +chr1 11283 11448 trf 199 +chr1 19305 19443 trf 242 +chr1 20828 20863 trf 70 +chr1 30862 30959 trf 79 +chr1 44835 44876 trf 73 +chr1 50481 50513 trf 64 +chr1 54712 54817 trf 149 +chr1 59896 59934 trf 58 +chr1 66159 66629 trf 278 +chr1 66160 66630 trf 339 +chr1 66204 66632 trf 202 +chr1 72120 72163 trf 59 +chr1 72124 72164 trf 62 +chr1 72128 72163 trf 52 +chr1 83505 83682 trf 302 +chr1 83791 84041 trf 335 +chr1 88674 88962 trf 441 +chr1 90047 90430 trf 712 +chr1 92209 92243 trf 68 +chr1 98999 99042 trf 86 +chr1 99046 99116 trf 68 +chr1 99046 99115 trf 95 +chr1 99046 99116 trf 104 +chr1 99047 99115 trf 77 +chr1 104160 104196 trf 63 +chr1 108444 108469 trf 50 +chr1 109564 109614 trf 82 +chr1 111439 111490 trf 66 +chr1 120967 121135 trf 150 +chr1 120968 121135 trf 159 +chr1 120968 121135 trf 137 +chr1 120968 121135 trf 166 +chr1 120968 121135 trf 121 +chr1 133744 133777 trf 50 +chr1 134065 134094 trf 58 +chr1 136199 137288 trf 1683 +chr1 136199 137288 trf 1880 +chr1 136199 137288 trf 1887 +chr1 137395 137465 trf 90 +chr1 139377 139457 trf 97 +chr1 144527 144576 trf 98 +chr1 147433 147475 trf 66 +chr1 147434 147478 trf 79 +chr1 158997 159031 trf 59 +chr1 162180 162275 trf 66 +chr1 162196 162353 trf 65 +chr1 162196 162325 trf 97 +chr1 162235 162281 trf 92 +chr1 162287 162344 trf 69 +chr1 162358 162393 trf 54 +chr1 164403 164470 trf 109 +chr1 174401 174686 trf 329 +chr1 174902 174933 trf 62 +chr1 176202 176231 trf 58 +chr1 227417 227805 trf 681 +chr1 236611 236766 trf 283 +chr1 238536 238570 trf 68 +chr1 241136 241161 trf 50 +chr1 241137 241180 trf 52 +chr1 241137 241179 trf 59 +chr1 245334 245365 trf 62 +chr1 245362 245430 trf 84 +chr1 245362 245428 trf 87 +chr1 245364 245430 trf 75 +chr1 245369 245430 trf 50 +chr1 245370 245430 trf 70 +chr1 245370 245428 trf 64 +chr1 245384 245430 trf 74 +chr1 248425 248468 trf 68 +chr1 250477 250511 trf 59 +chr1 254759 254784 trf 50 +chr1 255885 255929 trf 61 +chr1 255885 255929 trf 70 +chr1 257754 257805 trf 66 +chr1 267288 267425 trf 171 +chr1 267289 267425 trf 90 +chr1 267297 267425 trf 109 +chr1 324677 324757 trf 97 +chr1 325225 325313 trf 81 +chr1 326846 327154 trf 438 +chr1 326846 327154 trf 539 +chr1 329259 329284 trf 50 +chr1 329572 329605 trf 50 +chr1 342186 342356 trf 136 +chr1 342186 342355 trf 152 +chr1 342193 342352 trf 229 +chr1 351840 351891 trf 66 +chr1 361047 361090 trf 63 +chr1 363669 363832 trf 290 +chr1 384364 386754 trf 4622 +chr1 387005 387047 trf 57 +chr1 387034 387177 trf 94 +chr1 387036 387181 trf 80 +chr1 392650 392701 trf 84 +chr1 401285 401444 trf 218 +chr1 401573 401748 trf 280 +chr1 404661 404707 trf 92 +chr1 406202 406274 trf 76 +chr1 406227 406286 trf 77 +chr1 406776 406819 trf 68 +chr1 409821 409866 trf 51 +chr1 409865 409900 trf 52 +chr1 421245 421285 trf 64 +chr1 422395 422435 trf 80 +chr1 422560 422588 trf 56 +chr1 424690 424795 trf 75 +chr1 425529 425555 trf 52 +chr1 426691 426716 trf 50 +chr1 436729 437092 trf 658 +chr1 436785 436926 trf 81 +chr1 437637 438182 trf 1018 +chr1 437785 437896 trf 92 +chr1 437793 437899 trf 79 +chr1 440818 440844 trf 52 +chr1 440878 440928 trf 75 +chr1 440878 440997 trf 112 +chr1 440885 440997 trf 98 +chr1 440946 441013 trf 93 +chr1 445172 445363 trf 292 +chr1 445172 445363 trf 292 +chr1 445177 445376 trf 184 +chr1 445177 445400 trf 171 +chr1 445401 445494 trf 154 +chr1 446414 446792 trf 738 +chr1 446414 447053 trf 1224 +chr1 446523 446656 trf 248 +chr1 446575 446923 trf 660 +chr1 446706 447054 trf 642 +chr1 446837 446975 trf 267 +chr1 446941 447668 trf 1247 +chr1 448022 448062 trf 53 +chr1 448299 448328 trf 58 +chr1 448680 448724 trf 53 +chr1 448684 448724 trf 55 +chr1 449273 450589 trf 2380 +chr1 451283 451338 trf 56 +chr1 451399 451632 trf 152 +chr1 451537 451728 trf 276 +chr1 451584 451813 trf 365 +chr1 451678 451726 trf 96 +chr1 451753 451858 trf 144 +chr1 451793 452184 trf 692 +chr1 451816 452119 trf 187 +chr1 451816 452137 trf 269 +chr1 451823 451936 trf 138 +chr1 451876 452092 trf 256 +chr1 451921 452020 trf 117 +chr1 451978 452184 trf 279 +chr1 452783 452893 trf 152 +chr1 453564 453604 trf 55 +chr1 455230 455284 trf 90 +chr1 458520 458548 trf 56 +chr1 462939 463094 trf 283 +chr1 528496 528550 trf 99 +chr1 530176 530216 trf 55 +chr1 530887 530997 trf 152 +chr1 531596 531802 trf 279 +chr1 531596 531987 trf 683 +chr1 531661 531964 trf 178 +chr1 531688 531904 trf 247 +chr1 531934 532229 trf 464 +chr1 532022 532370 trf 268 +chr1 532081 532184 trf 120 +chr1 532087 532174 trf 122 +chr1 532431 532481 trf 64 +chr1 532431 532485 trf 72 +chr1 533174 534114 trf 1835 +chr1 533191 533267 trf 61 +chr1 534667 534710 trf 50 +chr1 534667 534707 trf 52 +chr1 534667 534708 trf 57 +chr1 535062 535091 trf 58 +chr1 535328 535368 trf 53 +chr1 535722 536212 trf 818 +chr1 536099 536447 trf 651 +chr1 536178 536316 trf 267 +chr1 536230 536556 trf 607 +chr1 537589 537739 trf 158 +chr1 537602 537744 trf 221 +chr1 541894 541943 trf 59 +chr1 541894 542022 trf 102 +chr1 541910 542022 trf 93 +chr1 541910 542029 trf 112 +chr1 541979 542029 trf 75 +chr1 542063 542089 trf 52 +chr1 544720 546141 trf 2669 +chr1 546686 547869 trf 2189 +chr1 546748 546993 trf 79 +chr1 547692 547833 trf 81 +chr1 557890 557915 trf 50 +chr1 559051 559079 trf 56 +chr1 559813 559914 trf 67 +chr1 559817 559858 trf 82 +chr1 562161 562201 trf 80 +chr1 563313 563353 trf 64 +chr1 580567 580602 trf 52 +chr1 580599 580641 trf 50 +chr1 580601 580647 trf 53 +chr1 583652 583695 trf 68 +chr1 584186 584244 trf 75 +chr1 585763 585803 trf 80 +chr1 588715 588890 trf 271 +chr1 589019 589170 trf 206 +chr1 597756 597807 trf 84 +chr1 603277 603432 trf 91 +chr1 603277 603432 trf 107 +chr1 603279 603434 trf 109 +chr1 603714 605330 trf 2931 +chr1 603937 604136 trf 96 +chr1 625321 625429 trf 137 +chr1 625857 626020 trf 290 +chr1 628597 628640 trf 63 +chr1 637802 637853 trf 66 +chr1 647337 647474 trf 115 +chr1 647338 647474 trf 104 +chr1 647342 647475 trf 130 +chr1 649704 649806 trf 204 +chr1 660108 660141 trf 50 +chr1 660431 660460 trf 58 +chr1 662565 662776 trf 295 +chr1 662565 662776 trf 359 +chr1 662883 662953 trf 81 +chr1 664865 664945 trf 97 +chr1 683120 683167 trf 76 +chr1 683123 683164 trf 55 +chr1 694826 694878 trf 95 +chr1 698013 698088 trf 69 +chr1 698019 698050 trf 62 +chr1 698023 698125 trf 99 +chr1 698024 698119 trf 75 +chr1 698040 698189 trf 110 +chr1 698131 698184 trf 70 +chr1 698198 698233 trf 54 +chr1 700243 700310 trf 109 +chr1 710207 710475 trf 331 +chr1 711984 712013 trf 58 +chr1 715022 715119 trf 133 +chr1 723748 723815 trf 52 +chr1 724137 727026 trf 1878 +chr1 724137 727026 trf 1878 +chr1 724137 727053 trf 1878 +chr1 726432 726478 trf 57 +chr1 731148 731189 trf 57 +chr1 743653 743700 trf 58 +chr1 743669 743718 trf 59 +chr1 743675 743718 trf 77 +chr1 746613 746648 trf 70 +chr1 747408 747448 trf 71 +chr1 755293 759043 trf 4409 +chr1 755609 755666 trf 53 +chr1 755625 755683 trf 53 +chr1 755765 755821 trf 60 +chr1 756535 756593 trf 55 +chr1 757494 757589 trf 54 +chr1 768037 768091 trf 72 +chr1 768116 768161 trf 90 +chr1 774678 775030 trf 506 +chr1 777293 777321 trf 56 +chr1 779740 779783 trf 77 +chr1 788795 789286 trf 865 +chr1 795558 795591 trf 66 +chr1 797133 797164 trf 53 +chr1 797158 797540 trf 178 +chr1 797168 797548 trf 136 +chr1 797189 797384 trf 63 +chr1 801825 802573 trf 1028 +chr1 804833 804900 trf 71 +chr1 804842 804900 trf 59 +chr1 805547 805588 trf 66 +chr1 806066 806132 trf 87 +chr1 807883 808559 trf 1130 +chr1 807883 808559 trf 1244 +chr1 811209 811814 trf 709 +chr1 816722 816761 trf 53 +chr1 823041 823078 trf 56 +chr1 823700 823757 trf 53 +chr1 823729 823881 trf 50 +chr1 823729 823968 trf 59 +chr1 823789 823828 trf 60 +chr1 823852 824027 trf 280 +chr1 823895 823966 trf 51 +chr1 823971 824057 trf 106 +chr1 823978 824059 trf 63 +chr1 828736 828771 trf 52 +chr1 829181 829220 trf 78 +chr1 834020 834055 trf 52 +chr1 835728 835792 trf 110 +chr1 836174 836199 trf 50 +chr1 839851 840119 trf 242 +chr1 839851 840119 trf 376 +chr1 839858 839943 trf 152 +chr1 839919 840117 trf 288 +chr1 840064 840098 trf 68 +chr1 840392 840494 trf 204 +chr1 842254 842394 trf 271 +chr1 843966 844177 trf 156 +chr1 843993 844076 trf 64 +chr1 844009 844176 trf 77 +chr1 844009 844123 trf 82 +chr1 844028 844123 trf 158 +chr1 844063 844201 trf 176 +chr1 844107 844193 trf 111 +chr1 844145 844229 trf 132 +chr1 844188 844232 trf 52 +chr1 844300 845279 trf 1655 +chr1 844300 845279 trf 1653 +chr1 844300 845279 trf 1777 +chr1 850333 850370 trf 56 +chr1 850976 851057 trf 144 +chr1 850978 851045 trf 57 +chr1 851738 851811 trf 110 +chr1 856983 857083 trf 75 +chr1 857031 857115 trf 74 +chr1 857060 857105 trf 74 +chr1 857067 857105 trf 76 +chr1 865461 865532 trf 142 +chr1 869345 870342 trf 1726 +chr1 871614 871813 trf 380 +chr1 871614 871836 trf 345 +chr1 871614 871836 trf 381 +chr1 873597 873709 trf 215 +chr1 874778 874888 trf 213 +chr1 883034 883124 trf 144 +chr1 884026 884057 trf 53 +chr1 885466 885544 trf 86 +chr1 885525 885653 trf 154 +chr1 885581 885612 trf 55 +chr1 885700 885825 trf 121 +chr1 885771 885825 trf 65 +chr1 885777 885825 trf 60 +chr1 885898 885930 trf 50 +chr1 885900 885928 trf 56 +chr1 890221 890256 trf 54 +chr1 892142 892275 trf 248 +chr1 892838 892953 trf 214 +chr1 895470 895850 trf 389 +chr1 895470 895852 trf 341 +chr1 895480 895852 trf 321 +chr1 895480 895792 trf 220 +chr1 899910 899993 trf 112 +chr1 899922 900224 trf 508 +chr1 900683 900726 trf 50 +chr1 900683 900724 trf 64 +chr1 904261 904289 trf 56 +chr1 904696 904765 trf 79 +chr1 904832 904922 trf 64 +chr1 904840 904937 trf 76 +chr1 904849 904901 trf 56 +chr1 904857 904919 trf 88 +chr1 904894 904950 trf 60 +chr1 904988 905037 trf 50 +chr1 905018 905066 trf 62 +chr1 905101 905145 trf 52 +chr1 905139 905170 trf 53 +chr1 905338 905562 trf 430 +chr1 910475 910561 trf 104 +chr1 910486 910537 trf 59 +chr1 910487 910560 trf 58 +chr1 910487 910558 trf 78 +chr1 910496 910561 trf 55 +chr1 912066 913452 trf 1950 +chr1 913746 913783 trf 65 +chr1 915298 915521 trf 383 +chr1 919955 919987 trf 64 +chr1 919991 920037 trf 92 +chr1 924066 924745 trf 846 +chr1 926889 926923 trf 50 +chr1 928267 928532 trf 372 +chr1 928270 928532 trf 389 +chr1 931634 932247 trf 1043 +chr1 932994 933111 trf 207 +chr1 934123 934164 trf 73 +chr1 934653 934692 trf 51 +chr1 941137 941186 trf 80 +chr1 941138 941186 trf 71 +chr1 943126 943160 trf 68 +chr1 945179 945710 trf 663 +chr1 946284 946707 trf 446 +chr1 951148 951737 trf 781 +chr1 953089 953185 trf 156 +chr1 953143 953581 trf 727 +chr1 953199 953460 trf 171 +chr1 953250 953504 trf 255 +chr1 954849 954889 trf 64 +chr1 955321 955424 trf 77 +chr1 955321 955424 trf 59 +chr1 955366 955419 trf 63 +chr1 961126 961164 trf 58 +chr1 963851 964525 trf 1197 +chr1 964343 964441 trf 80 +chr1 964745 964826 trf 126 +chr1 964766 964864 trf 102 +chr1 964970 966672 trf 1913 +chr1 964970 966699 trf 1483 +chr1 965018 965308 trf 246 +chr1 965719 965868 trf 78 +chr1 966062 966203 trf 237 +chr1 966540 966677 trf 194 +chr1 969012 969213 trf 79 +chr1 969065 969213 trf 81 +chr1 976345 976518 trf 82 +chr1 976360 976505 trf 281 +chr1 976362 976421 trf 84 +chr1 976437 976496 trf 84 +chr1 976476 976522 trf 67 +chr1 977058 977237 trf 340 +chr1 977156 977232 trf 63 +chr1 984503 984583 trf 124 +chr1 987833 988039 trf 277 +chr1 987833 988039 trf 290 +chr1 987902 988052 trf 198 +chr1 987974 988236 trf 445 +chr1 988030 988173 trf 92 +chr1 988150 988316 trf 228 +chr1 988559 988607 trf 87 +chr1 988586 988670 trf 123 +chr1 991335 991369 trf 59 +chr1 991698 991905 trf 297 +chr1 991706 991908 trf 134 +chr1 991828 992100 trf 373 +chr1 991828 992100 trf 431 +chr1 991974 992012 trf 58 +chr1 991982 992014 trf 64 +chr1 992049 992133 trf 123 +chr1 995008 995063 trf 76 +chr1 997426 997584 trf 67 +chr1 997453 997513 trf 77 +chr1 997476 997570 trf 85 +chr1 997483 997584 trf 125 +chr1 999018 999068 trf 63 +chr1 1000223 1000702 trf 840 +chr1 1002912 1002945 trf 57 +chr1 1004112 1004214 trf 186 +chr1 1004412 1004491 trf 131 +chr1 1010238 1010295 trf 91 +chr1 1010263 1010322 trf 68 +chr1 1010278 1010363 trf 93 +chr1 1010966 1011101 trf 252 +chr1 1011232 1014805 trf 5788 +chr1 1016016 1016409 trf 750 +chr1 1019922 1020020 trf 155 +chr1 1022153 1022239 trf 93 +chr1 1023206 1023336 trf 228 +chr1 1023322 1023355 trf 57 +chr1 1023515 1023739 trf 188 +chr1 1024905 1024943 trf 67 +chr1 1027069 1027195 trf 200 +chr1 1027082 1027147 trf 58 +chr1 1027689 1027725 trf 63 +chr1 1028061 1028113 trf 86 +chr1 1034367 1035284 trf 1392 +chr1 1035608 1035699 trf 157 +chr1 1036893 1036956 trf 90 +chr1 1036893 1036956 trf 108 +chr1 1036928 1037071 trf 166 +chr1 1037451 1037476 trf 50 +chr1 1037663 1037716 trf 88 +chr1 1037994 1038029 trf 70 +chr1 1041264 1041299 trf 52 +chr1 1042610 1042845 trf 353 +chr1 1042754 1042884 trf 176 +chr1 1042995 1043052 trf 87 +chr1 1043427 1044497 trf 1479 +chr1 1043427 1044497 trf 1430 +chr1 1043429 1043671 trf 81 +chr1 1043429 1044497 trf 1439 +chr1 1044117 1044168 trf 52 +chr1 1044397 1044448 trf 52 +chr1 1044791 1044820 trf 51 +chr1 1047748 1048055 trf 422 +chr1 1050860 1051130 trf 261 +chr1 1050860 1051124 trf 292 +chr1 1050860 1051121 trf 368 +chr1 1052448 1052587 trf 103 +chr1 1052448 1052587 trf 136 +chr1 1052449 1052587 trf 125 +chr1 1056378 1056453 trf 105 +chr1 1058858 1059628 trf 382 +chr1 1058863 1059628 trf 286 +chr1 1058875 1059629 trf 301 +chr1 1058875 1059342 trf 168 +chr1 1058889 1058970 trf 72 +chr1 1058996 1059106 trf 82 +chr1 1059233 1059602 trf 250 +chr1 1059235 1059595 trf 297 +chr1 1059303 1059373 trf 59 +chr1 1061937 1062127 trf 281 +chr1 1064073 1064139 trf 96 +chr1 1065566 1065596 trf 60 +chr1 1069588 1069676 trf 131 +chr1 1070119 1070237 trf 202 +chr1 1071446 1071496 trf 91 +chr1 1074450 1076089 trf 2927 +chr1 1076480 1076690 trf 271 +chr1 1076486 1076722 trf 88 +chr1 1076486 1076920 trf 135 +chr1 1076716 1076840 trf 164 +chr1 1076793 1076877 trf 82 +chr1 1076874 1076927 trf 81 +chr1 1077426 1077535 trf 218 +chr1 1078622 1078859 trf 285 +chr1 1080780 1080986 trf 140 +chr1 1082517 1082829 trf 570 +chr1 1084221 1084448 trf 429 +chr1 1084981 1085079 trf 88 +chr1 1087203 1087264 trf 104 +chr1 1087774 1088962 trf 1640 +chr1 1091730 1091876 trf 274 +chr1 1092670 1092733 trf 101 +chr1 1092725 1092808 trf 166 +chr1 1099577 1099622 trf 90 +chr1 1101888 1101940 trf 59 +chr1 1101888 1101940 trf 68 +chr1 1101897 1101928 trf 53 +chr1 1103389 1103513 trf 239 +chr1 1105847 1105954 trf 62 +chr1 1105847 1105950 trf 84 +chr1 1105862 1105935 trf 69 +chr1 1108106 1108225 trf 68 +chr1 1108106 1108213 trf 51 +chr1 1108112 1108150 trf 51 +chr1 1108127 1108214 trf 50 +chr1 1108151 1108233 trf 56 +chr1 1108151 1108213 trf 63 +chr1 1111095 1111214 trf 193 +chr1 1111111 1111165 trf 85 +chr1 1111111 1111378 trf 444 +chr1 1111169 1111287 trf 159 +chr1 1111169 1111295 trf 207 +chr1 1111219 1111451 trf 366 +chr1 1111302 1111370 trf 127 +chr1 1111302 1111779 trf 512 +chr1 1111387 1111584 trf 159 +chr1 1111516 1111750 trf 432 +chr1 1111599 1111667 trf 136 +chr1 1111682 1111775 trf 150 +chr1 1111883 1111929 trf 83 +chr1 1112366 1112489 trf 102 +chr1 1112368 1112489 trf 80 +chr1 1112421 1112507 trf 79 +chr1 1112424 1112491 trf 71 +chr1 1112441 1112517 trf 77 +chr1 1112510 1112577 trf 98 +chr1 1112510 1112595 trf 109 +chr1 1112628 1112677 trf 50 +chr1 1112628 1112685 trf 78 +chr1 1116246 1116362 trf 123 +chr1 1116337 1116452 trf 203 +chr1 1116389 1116420 trf 53 +chr1 1119906 1119946 trf 57 +chr1 1120035 1120360 trf 650 +chr1 1122785 1123298 trf 647 +chr1 1127741 1128246 trf 803 +chr1 1129595 1129648 trf 74 +chr1 1130766 1130791 trf 50 +chr1 1133236 1133267 trf 53 +chr1 1133453 1133556 trf 138 +chr1 1137158 1138210 trf 1893 +chr1 1139627 1139677 trf 82 +chr1 1146421 1146681 trf 376 +chr1 1149568 1149616 trf 62 +chr1 1149569 1149606 trf 51 +chr1 1154541 1154589 trf 51 +chr1 1157015 1157044 trf 51 +chr1 1158300 1158549 trf 281 +chr1 1158302 1158549 trf 272 +chr1 1158313 1158393 trf 63 +chr1 1158440 1158497 trf 78 +chr1 1158459 1158518 trf 68 +chr1 1158479 1158547 trf 68 +chr1 1158509 1158569 trf 75 +chr1 1161070 1161160 trf 153 +chr1 1161136 1161175 trf 51 +chr1 1161675 1161800 trf 223 +chr1 1162663 1162879 trf 387 +chr1 1164423 1164479 trf 60 +chr1 1164443 1164568 trf 173 +chr1 1164659 1164697 trf 76 +chr1 1164664 1164705 trf 64 +chr1 1180100 1180675 trf 194 +chr1 1180105 1180674 trf 413 +chr1 1180107 1180635 trf 251 +chr1 1180259 1180635 trf 120 +chr1 1180282 1180656 trf 332 +chr1 1180392 1180518 trf 113 +chr1 1182253 1182282 trf 51 +chr1 1183472 1185067 trf 2517 +chr1 1193812 1193854 trf 59 +chr1 1194367 1194651 trf 480 +chr1 1194368 1194517 trf 232 +chr1 1194369 1194514 trf 183 +chr1 1194369 1194675 trf 201 +chr1 1194446 1194581 trf 191 +chr1 1194481 1194537 trf 96 +chr1 1194506 1194622 trf 141 +chr1 1194683 1194774 trf 101 +chr1 1200934 1201010 trf 125 +chr1 1200944 1201029 trf 102 +chr1 1202260 1202285 trf 50 +chr1 1202904 1203030 trf 180 +chr1 1204479 1204792 trf 608 +chr1 1206181 1206271 trf 155 +chr1 1207354 1207384 trf 60 +chr1 1207988 1208097 trf 182 +chr1 1214445 1214547 trf 141 +chr1 1214462 1214617 trf 265 +chr1 1214509 1214580 trf 88 +chr1 1218004 1218109 trf 120 +chr1 1218007 1218117 trf 116 +chr1 1219479 1219566 trf 61 +chr1 1219480 1219588 trf 155 +chr1 1219483 1219606 trf 109 +chr1 1219484 1219606 trf 144 +chr1 1219529 1219604 trf 51 +chr1 1219542 1219591 trf 55 +chr1 1219595 1219694 trf 119 +chr1 1219672 1219707 trf 54 +chr1 1219672 1219723 trf 50 +chr1 1219884 1220063 trf 263 +chr1 1219884 1220063 trf 295 +chr1 1223579 1225633 trf 2934 +chr1 1223750 1223820 trf 56 +chr1 1229111 1229176 trf 130 +chr1 1231706 1231814 trf 198 +chr1 1232119 1232352 trf 263 +chr1 1232456 1233167 trf 1083 +chr1 1232456 1233187 trf 1346 +chr1 1233864 1233935 trf 106 +chr1 1234790 1234859 trf 138 +chr1 1238883 1238921 trf 53 +chr1 1238973 1239134 trf 259 +chr1 1243313 1243469 trf 231 +chr1 1243333 1243466 trf 74 +chr1 1243558 1243589 trf 62 +chr1 1246148 1246273 trf 250 +chr1 1246244 1246290 trf 74 +chr1 1249896 1249978 trf 130 +chr1 1250511 1250589 trf 129 +chr1 1251042 1251100 trf 62 +chr1 1251042 1251235 trf 71 +chr1 1251117 1251169 trf 77 +chr1 1251158 1251208 trf 55 +chr1 1252775 1252800 trf 50 +chr1 1258002 1258044 trf 59 +chr1 1258018 1258073 trf 62 +chr1 1258019 1258136 trf 137 +chr1 1258477 1258512 trf 54 +chr1 1259246 1259613 trf 293 +chr1 1259288 1259640 trf 336 +chr1 1260142 1260179 trf 56 +chr1 1264919 1264962 trf 50 +chr1 1265069 1265099 trf 51 +chr1 1265182 1265220 trf 58 +chr1 1265375 1265438 trf 72 +chr1 1265502 1265556 trf 72 +chr1 1273216 1273324 trf 171 +chr1 1273220 1273271 trf 50 +chr1 1275245 1275424 trf 222 +chr1 1275260 1275326 trf 64 +chr1 1275267 1275328 trf 67 +chr1 1275281 1275347 trf 55 +chr1 1276118 1276613 trf 154 +chr1 1276118 1276612 trf 274 +chr1 1276191 1276220 trf 58 +chr1 1276263 1276486 trf 219 +chr1 1276554 1276614 trf 70 +chr1 1276776 1276984 trf 228 +chr1 1278237 1278433 trf 347 +chr1 1280317 1280443 trf 198 +chr1 1285358 1286838 trf 2870 +chr1 1290766 1290818 trf 95 +chr1 1290766 1290812 trf 60 +chr1 1290766 1290834 trf 84 +chr1 1291286 1291395 trf 121 +chr1 1291317 1291440 trf 140 +chr1 1291672 1291789 trf 139 +chr1 1291688 1291899 trf 280 +chr1 1291791 1291903 trf 122 +chr1 1296283 1296348 trf 105 +chr1 1296355 1296406 trf 75 +chr1 1296502 1296542 trf 62 +chr1 1296543 1296592 trf 64 +chr1 1296561 1296617 trf 69 +chr1 1297901 1298474 trf 866 +chr1 1298280 1298678 trf 472 +chr1 1298813 1299164 trf 452 +chr1 1299410 1299702 trf 370 +chr1 1300851 1301224 trf 482 +chr1 1301373 1301440 trf 53 +chr1 1301597 1301644 trf 52 +chr1 1301599 1301645 trf 92 +chr1 1301715 1301768 trf 58 +chr1 1301715 1301768 trf 70 +chr1 1301723 1301780 trf 91 +chr1 1301800 1301827 trf 54 +chr1 1302087 1302117 trf 51 +chr1 1302214 1302317 trf 147 +chr1 1302237 1302962 trf 128 +chr1 1302247 1302355 trf 70 +chr1 1302307 1302598 trf 347 +chr1 1302378 1302552 trf 139 +chr1 1302380 1302636 trf 361 +chr1 1302578 1302612 trf 54 +chr1 1302604 1302698 trf 111 +chr1 1302768 1303061 trf 302 +chr1 1302844 1302907 trf 74 +chr1 1302863 1302911 trf 87 +chr1 1303029 1303063 trf 50 +chr1 1303558 1303591 trf 66 +chr1 1317610 1318281 trf 1077 +chr1 1317610 1318281 trf 1077 +chr1 1320746 1321020 trf 431 +chr1 1322516 1322558 trf 84 +chr1 1326979 1327034 trf 92 +chr1 1331951 1331977 trf 52 +chr1 1331957 1332310 trf 446 +chr1 1342954 1343001 trf 58 +chr1 1347226 1347544 trf 155 +chr1 1347234 1347579 trf 215 +chr1 1347251 1347544 trf 379 +chr1 1347271 1347576 trf 182 +chr1 1347293 1347510 trf 277 +chr1 1347495 1347593 trf 160 +chr1 1356049 1356168 trf 177 +chr1 1356062 1356153 trf 89 +chr1 1362713 1362907 trf 121 +chr1 1363337 1363594 trf 218 +chr1 1363338 1363584 trf 330 +chr1 1363338 1363589 trf 369 +chr1 1364227 1364740 trf 424 +chr1 1364378 1364704 trf 402 +chr1 1366406 1366438 trf 64 +chr1 1366430 1366550 trf 192 +chr1 1368390 1368456 trf 114 +chr1 1378218 1378319 trf 193 +chr1 1379053 1379107 trf 108 +chr1 1379726 1379823 trf 185 +chr1 1380549 1380674 trf 214 +chr1 1381412 1381670 trf 329 +chr1 1383880 1383915 trf 70 +chr1 1384513 1384765 trf 98 +chr1 1384514 1384775 trf 198 +chr1 1384517 1384757 trf 100 +chr1 1384517 1384765 trf 98 +chr1 1384540 1384776 trf 63 +chr1 1384613 1384798 trf 289 +chr1 1384713 1384765 trf 70 +chr1 1388177 1388219 trf 50 +chr1 1390596 1390623 trf 54 +chr1 1396969 1397166 trf 313 +chr1 1400969 1400994 trf 50 +chr1 1402019 1402053 trf 59 +chr1 1404479 1404516 trf 74 +chr1 1409555 1409592 trf 56 +chr1 1409556 1409592 trf 58 +chr1 1412924 1413011 trf 147 +chr1 1413057 1413105 trf 89 +chr1 1414752 1414828 trf 125 +chr1 1415232 1415303 trf 83 +chr1 1417220 1417451 trf 167 +chr1 1417307 1417451 trf 189 +chr1 1422926 1423030 trf 172 +chr1 1427911 1428172 trf 353 +chr1 1429788 1429941 trf 261 +chr1 1432534 1432597 trf 126 +chr1 1433277 1433534 trf 329 +chr1 1434966 1434991 trf 50 +chr1 1434972 1435568 trf 771 +chr1 1435982 1436040 trf 73 +chr1 1435984 1436027 trf 50 +chr1 1436803 1437059 trf 322 +chr1 1437233 1437278 trf 58 +chr1 1437600 1438182 trf 757 +chr1 1439334 1439361 trf 54 +chr1 1443549 1443652 trf 161 +chr1 1445861 1445898 trf 67 +chr1 1447259 1447297 trf 76 +chr1 1447859 1447900 trf 50 +chr1 1451663 1451743 trf 151 +chr1 1453382 1453419 trf 58 +chr1 1453730 1453769 trf 51 +chr1 1453957 1454004 trf 58 +chr1 1454092 1454259 trf 196 +chr1 1454148 1454241 trf 107 +chr1 1455280 1455442 trf 189 +chr1 1455303 1455454 trf 158 +chr1 1456678 1456709 trf 62 +chr1 1463744 1463824 trf 106 +chr1 1466208 1466235 trf 54 +chr1 1467157 1467188 trf 53 +chr1 1467438 1467474 trf 56 +chr1 1468157 1468364 trf 324 +chr1 1470421 1470471 trf 100 +chr1 1470524 1470562 trf 51 +chr1 1475221 1475440 trf 282 +chr1 1475226 1475580 trf 268 +chr1 1475226 1475580 trf 273 +chr1 1475226 1475580 trf 250 +chr1 1475308 1475361 trf 54 +chr1 1475870 1475907 trf 51 +chr1 1475872 1475919 trf 51 +chr1 1475985 1476019 trf 50 +chr1 1476022 1476062 trf 53 +chr1 1478430 1478455 trf 50 +chr1 1478967 1479211 trf 431 +chr1 1479084 1479198 trf 59 +chr1 1481888 1481988 trf 121 +chr1 1484901 1484931 trf 51 +chr1 1484947 1485207 trf 310 +chr1 1489521 1489787 trf 415 +chr1 1491398 1491709 trf 324 +chr1 1491623 1491843 trf 302 +chr1 1494586 1494680 trf 143 +chr1 1497825 1498003 trf 320 +chr1 1497825 1498032 trf 290 +chr1 1499766 1499791 trf 50 +chr1 1500485 1500544 trf 118 +chr1 1504571 1504622 trf 50 +chr1 1504572 1504620 trf 60 +chr1 1506213 1506486 trf 408 +chr1 1506470 1506829 trf 456 +chr1 1506624 1506662 trf 76 +chr1 1506858 1506888 trf 60 +chr1 1508397 1508652 trf 365 +chr1 1508809 1508836 trf 54 +chr1 1508809 1508861 trf 63 +chr1 1513789 1513975 trf 261 +chr1 1519478 1520228 trf 761 +chr1 1520670 1520701 trf 53 +chr1 1520698 1521016 trf 467 +chr1 1521329 1521358 trf 58 +chr1 1523831 1523856 trf 50 +chr1 1524540 1524583 trf 86 +chr1 1527628 1528557 trf 1047 +chr1 1527898 1527923 trf 50 +chr1 1528156 1528948 trf 947 +chr1 1528653 1528683 trf 53 +chr1 1529082 1529121 trf 53 +chr1 1529082 1529122 trf 62 +chr1 1529749 1529833 trf 114 +chr1 1529791 1529908 trf 126 +chr1 1530243 1530304 trf 77 +chr1 1530261 1531368 trf 650 +chr1 1530262 1531931 trf 524 +chr1 1530262 1531949 trf 574 +chr1 1530268 1531907 trf 299 +chr1 1530268 1531741 trf 478 +chr1 1530270 1531665 trf 406 +chr1 1530290 1532197 trf 779 +chr1 1530290 1531982 trf 521 +chr1 1530290 1532197 trf 908 +chr1 1530290 1531982 trf 650 +chr1 1530314 1531741 trf 473 +chr1 1530407 1532078 trf 257 +chr1 1531184 1531743 trf 212 +chr1 1531707 1532141 trf 259 +chr1 1531787 1532197 trf 142 +chr1 1531795 1532109 trf 271 +chr1 1531800 1532183 trf 119 +chr1 1531995 1532121 trf 130 +chr1 1532114 1532197 trf 69 +chr1 1535328 1535366 trf 53 +chr1 1539673 1539702 trf 58 +chr1 1540034 1540153 trf 98 +chr1 1540782 1542016 trf 1313 +chr1 1541871 1541920 trf 63 +chr1 1543409 1543506 trf 84 +chr1 1543409 1543491 trf 105 +chr1 1543412 1543505 trf 106 +chr1 1544291 1545218 trf 999 +chr1 1545201 1545231 trf 51 +chr1 1547902 1547954 trf 52 +chr1 1547908 1547954 trf 51 +chr1 1547928 1548697 trf 928 +chr1 1551268 1551294 trf 52 +chr1 1556883 1556933 trf 100 +chr1 1557168 1557196 trf 56 +chr1 1558754 1558840 trf 154 +chr1 1562818 1562984 trf 288 +chr1 1562940 1563022 trf 110 +chr1 1563202 1563335 trf 214 +chr1 1565226 1565251 trf 50 +chr1 1565369 1565439 trf 58 +chr1 1577062 1577101 trf 60 +chr1 1577063 1577161 trf 92 +chr1 1579428 1579502 trf 121 +chr1 1585271 1585316 trf 90 +chr1 1589609 1589640 trf 53 +chr1 1589609 1589646 trf 58 +chr1 1590379 1590411 trf 55 +chr1 1596506 1596554 trf 71 +chr1 1598047 1598316 trf 252 +chr1 1598073 1598309 trf 305 +chr1 1604847 1605406 trf 716 +chr1 1605400 1605429 trf 51 +chr1 1605400 1605433 trf 50 +chr1 1605400 1605432 trf 64 +chr1 1606063 1606095 trf 64 +chr1 1610422 1610457 trf 52 +chr1 1610995 1611578 trf 737 +chr1 1611740 1611772 trf 55 +chr1 1613427 1613479 trf 104 +chr1 1614518 1614553 trf 61 +chr1 1615180 1615225 trf 72 +chr1 1616228 1616253 trf 50 +chr1 1617745 1617778 trf 59 +chr1 1618844 1618897 trf 97 +chr1 1621155 1621733 trf 655 +chr1 1623572 1623610 trf 55 +chr1 1623800 1623876 trf 68 +chr1 1623800 1623863 trf 101 +chr1 1623804 1623851 trf 67 +chr1 1623804 1623876 trf 69 +chr1 1624412 1624601 trf 188 +chr1 1624630 1624664 trf 59 +chr1 1626128 1626163 trf 70 +chr1 1626708 1627282 trf 728 +chr1 1628298 1628462 trf 258 +chr1 1631037 1631077 trf 71 +chr1 1640272 1640311 trf 60 +chr1 1640273 1640371 trf 92 +chr1 1642643 1642717 trf 121 +chr1 1648253 1648291 trf 76 +chr1 1649011 1650025 trf 1681 +chr1 1649025 1650025 trf 1051 +chr1 1649025 1650073 trf 1075 +chr1 1650374 1650511 trf 228 +chr1 1650410 1650604 trf 327 +chr1 1650517 1650656 trf 158 +chr1 1651534 1652331 trf 788 +chr1 1652685 1652952 trf 364 +chr1 1652687 1652975 trf 330 +chr1 1654927 1654962 trf 70 +chr1 1657828 1658488 trf 896 +chr1 1662429 1662576 trf 188 +chr1 1667376 1668255 trf 883 +chr1 1668240 1668285 trf 54 +chr1 1668919 1668951 trf 55 +chr1 1674425 1674996 trf 653 +chr1 1676847 1676885 trf 55 +chr1 1677075 1677138 trf 65 +chr1 1677075 1677151 trf 68 +chr1 1677079 1677126 trf 58 +chr1 1678939 1679513 trf 719 +chr1 1680020 1680104 trf 116 +chr1 1684347 1684375 trf 56 +chr1 1690703 1690818 trf 221 +chr1 1692120 1692169 trf 98 +chr1 1694198 1694233 trf 70 +chr1 1694656 1694974 trf 321 +chr1 1697849 1697889 trf 80 +chr1 1699811 1699848 trf 56 +chr1 1699811 1699848 trf 65 +chr1 1699813 1699848 trf 54 +chr1 1701408 1701454 trf 92 +chr1 1702528 1702568 trf 64 +chr1 1705115 1705169 trf 108 +chr1 1705940 1706116 trf 262 +chr1 1711106 1711131 trf 50 +chr1 1726620 1726658 trf 58 +chr1 1726620 1726665 trf 54 +chr1 1735153 1735745 trf 677 +chr1 1736315 1736878 trf 731 +chr1 1738902 1738932 trf 60 +chr1 1740063 1740101 trf 55 +chr1 1740065 1740096 trf 62 +chr1 1743832 1743868 trf 54 +chr1 1746236 1746267 trf 53 +chr1 1754681 1754706 trf 50 +chr1 1758299 1758360 trf 88 +chr1 1760313 1760352 trf 60 +chr1 1767526 1767571 trf 63 +chr1 1768694 1769300 trf 756 +chr1 1775252 1775532 trf 320 +chr1 1775633 1775681 trf 55 +chr1 1775634 1775680 trf 60 +chr1 1777017 1777054 trf 51 +chr1 1777263 1777311 trf 96 +chr1 1779796 1779838 trf 50 +chr1 1779796 1779842 trf 67 +chr1 1782427 1782710 trf 386 +chr1 1786200 1786444 trf 352 +chr1 1786470 1786774 trf 407 +chr1 1786760 1786798 trf 51 +chr1 1796430 1797029 trf 957 +chr1 1796700 1796739 trf 69 +chr1 1800624 1800650 trf 52 +chr1 1803968 1804045 trf 127 +chr1 1806044 1806071 trf 54 +chr1 1822049 1822099 trf 50 +chr1 1826194 1826271 trf 129 +chr1 1828155 1828487 trf 452 +chr1 1829604 1829693 trf 79 +chr1 1829656 1829713 trf 80 +chr1 1829745 1829936 trf 109 diff --git a/test/shuffle/test-shuffle.sh b/test/shuffle/test-shuffle.sh new file mode 100644 index 00000000..606d60ce --- /dev/null +++ b/test/shuffle/test-shuffle.sh @@ -0,0 +1,127 @@ +BT=${BT-../../bin/bedtools} +check() +{ + if diff $1 $2; then + echo ok + return 1 + else + echo fail + return 0 + fi +} + + +########################################################### +# test basic shuffle +########################################################### +echo " shuffle.t1...\c" +echo \ +"chr9 108600879 108601347 trf 789 +chr12 9186177 9186350 trf 346 +chr8 89726287 89726527 trf 434 +chr8 40323278 40323500 trf 273 +chr8 69904335 69904512 trf 187 +chr5 138240459 138240624 trf 199 +chr11 96382483 96382621 trf 242 +chr8 105834146 105834181 trf 70 +chrX 105921488 105921585 trf 79 +chrX 125331456 125331497 trf 73" > exp +$BT shuffle -seed 42 -i simrep.bed \ + -g ../../genomes/human.hg19.genome | head > obs +check obs exp +rm obs exp + + +########################################################### +# test basic shuffle with -incl (choose intervals randomly) +########################################################### +echo " shuffle.t2...\c" +echo \ +"chr3 542223 542691 trf 789 +chr5 444343 444516 trf 346 +chr1 2520601 2520841 trf 434 +chr5 194760 194982 trf 273 +chr1 2121545 2121722 trf 187 +chr1 2246343 2246508 trf 199 +chr1 2724117 2724255 trf 242 +chr4 304892 304927 trf 70 +chr2 332618 332715 trf 79 +chr5 822410 822451 trf 73 +chr1 1450982 1451014 trf 64 +chr1 3218361 3218466 trf 149 +chr4 338952 338990 trf 58 +chr3 713207 713677 trf 278 +chr1 4378307 4378777 trf 339 +chr1 4451988 4452416 trf 202 +chr1 1545567 1545610 trf 59 +chr1 573175 573215 trf 62 +chr4 931201 931236 trf 52 +chr1 4215777 4215954 trf 302" > exp +$BT shuffle -incl incl.bed -seed 42 -i simrep.bed \ + -g ../../genomes/human.hg19.genome | head -20 > obs +check obs exp +rm obs exp + +############################################################## +# test basic shuffle with -incl (choose chroms randomly first) +############################################################## +echo " shuffle.t3...\c" +echo \ +"chr5 310009 310477 trf 789 +chr4 520601 520774 trf 346 +chr2 130650 130890 trf 434 +chr1 3246343 3246565 trf 273 +chr2 968160 968337 trf 187 +chr3 332618 332783 trf 199 +chr4 638727 638865 trf 242 +chr3 218361 218396 trf 70 +chr1 2259217 2259314 trf 79 +chr3 378307 378348 trf 73 +chr4 447387 447419 trf 64 +chr3 573175 573280 trf 149 +chr2 106791 106829 trf 58 +chr3 618697 619167 trf 278 +chr2 211901 212371 trf 339 +chr5 656883 657311 trf 202 +chr2 993338 993381 trf 59 +chr2 713531 713571 trf 62 +chr2 428268 428303 trf 52 +chr4 590632 590809 trf 302" > exp +$BT shuffle -incl incl.bed -chromFirst -seed 42 -i simrep.bed \ + -g ../../genomes/human.hg19.genome | head -20 > obs +check obs exp +rm obs exp + + +############################################################## +# test basic shuffle with -excl +############################################################## +echo " shuffle.t4...\c" +echo -n "" > exp +$BT shuffle -seed 42 -i simrep.bed \ + -g ../../genomes/human.hg19.genome \ + -excl excl.bed \ +| $BT intersect -a - -b excl.bed > obs +check obs exp +rm obs exp + +############################################################## +# test basic shuffle with +############################################################## +echo " shuffle.t5...\c" +echo \ +"chr1 150415830 150415862 trf 64 +chr1 150415830 150415862 trf 64 +chr5 78078743 78079213 trf 339 +chr4 84711820 84712248 trf 202 +chr4 61777751 61777794 trf 59 +chr3 28583223 28583400 trf 302 +chr1 55933709 55934092 trf 712 +chr1 55933709 55934092 trf 712 +chr1 39686691 39686725 trf 68 +chr2 2555287 2555330 trf 86" > exp +$BT shuffle -seed 42 -i simrep.bed \ + -g ../../genomes/human.hg19.genome \ +| $BT intersect -a - -b excl.bed | head > obs +check obs exp +rm obs exp \ No newline at end of file -- GitLab