1set -e; 2BT=${BT-../../bin/bedtools} 3FAILURES=0; 4 5check() 6{ 7 if diff $1 $2; then 8 echo ok 9 10 else 11 FAILURES=$(expr $FAILURES + 1); 12 echo fail 13 14 fi 15} 16 17 18########################################################### 19# test basic shuffle 20########################################################### 21echo -e " shuffle.t1...\c" 22echo \ 23"chr3 192943497 192943965 trf 789 24chr4 13668420 13668593 trf 346 25chr1 114076345 114076585 trf 434 26chr13 99270316 99270538 trf 273 27chr7 64692734 64692911 trf 187 28chr3 160795229 160795394 trf 199 29chr11 112718526 112718664 trf 242 30chr10 84388736 84388771 trf 70 31chr15 74373271 74373368 trf 79 32chr7 100517230 100517271 trf 73" > exp 33$BT shuffle -seed 42 -i simrep.bed \ 34 -g ../../genomes/human.hg19.genome | head > obs 35check obs exp 36rm obs exp 37 38 39########################################################### 40# test basic shuffle with -incl (choose intervals randomly) 41########################################################### 42echo -e " shuffle.t2...\c" 43echo \ 44"chr3 494824 495292 trf 789 45chr3 155662 155835 trf 346 46chr5 978428 978668 trf 434 47chr2 566144 566366 trf 273 48chr1 2524257 2524434 trf 187 49chr1 974662 974827 trf 199 50chr3 511406 511544 trf 242 51chr4 372392 372427 trf 70 52chr3 252210 252307 trf 79 53chr1 429351 429392 trf 73 54chr3 637074 637106 trf 64 55chr1 3632329 3632434 trf 149 56chr1 1405460 1405498 trf 58 57chr1 4587372 4587842 trf 278 58chr3 813140 813610 trf 339 59chr3 831383 831811 trf 202 60chr3 177788 177831 trf 59 61chr1 140167 140207 trf 62 62chr3 642846 642881 trf 52 63chr1 2627907 2628084 trf 302" > exp 64$BT shuffle -incl incl.bed -seed 42 -i simrep.bed \ 65 -g ../../genomes/human.hg19.genome | head -20 > obs 66check obs exp 67rm obs exp 68 69############################################################## 70# test basic shuffle with -incl (choose chroms randomly first) 71############################################################## 72echo -e " shuffle.t3...\c" 73echo \ 74"chr3 494824 495292 trf 789 75chr3 155662 155835 trf 346 76chr5 978428 978668 trf 434 77chr2 566144 566366 trf 273 78chr1 2524257 2524434 trf 187 79chr1 974662 974827 trf 199 80chr3 511406 511544 trf 242 81chr4 372392 372427 trf 70 82chr3 252210 252307 trf 79 83chr1 429351 429392 trf 73 84chr3 637074 637106 trf 64 85chr1 3632329 3632434 trf 149 86chr1 1405460 1405498 trf 58 87chr1 4587372 4587842 trf 278 88chr3 813140 813610 trf 339 89chr3 831383 831811 trf 202 90chr3 177788 177831 trf 59 91chr1 140167 140207 trf 62 92chr3 642846 642881 trf 52 93chr1 2627907 2628084 trf 302" > exp 94$BT shuffle -incl incl.bed -chromFirst -seed 42 -i simrep.bed \ 95 -g ../../genomes/human.hg19.genome | head -20 > obs 96check obs exp 97rm obs exp 98 99 100############################################################## 101# test basic shuffle with -excl 102############################################################## 103echo -e " shuffle.t4...\c" 104echo -n "" > exp 105$BT shuffle -seed 42 -i simrep.bed \ 106 -g ../../genomes/human.hg19.genome \ 107 -excl excl.bed \ 108| $BT intersect -a - -b excl.bed > obs 109check obs exp 110rm obs exp 111 112############################################################## 113# test basic shuffle with 114############################################################## 115echo -e " shuffle.t5...\c" 116echo \ 117"chr4 13668420 13668593 trf 346 118chr1 114076345 114076585 trf 434 119chr1 114076345 114076585 trf 434 120chr5 17088394 17088864 trf 339 121chr3 53794735 53794769 trf 68 122chr2 73265723 73265766 trf 86 123chr2 4749579 4749649 trf 68 124chr1 15263027 15263097 trf 104 125chr5 57165089 57165114 trf 50 126chr4 33917224 33917392 trf 150" > exp 127$BT shuffle -seed 42 -i simrep.bed \ 128 -g ../../genomes/human.hg19.genome \ 129| $BT intersect -a - -b excl.bed | head > obs 130check obs exp 131rm obs exp 132 133############################################################### 134# test an interval that is bigger than the max chrom length 135############################################################### 136echo -e " shuffle.t6...\c" 137echo "Error, line 1: tried 1000 potential loci for entry, but could not avoid excluded regions. Ignoring entry and moving on." > exp 138$BT shuffle -i <(echo -e "chr1\t0\t110") -g <(echo -e "chr1\t100") &> obs 139check obs exp 140rm obs exp 141[[ $FAILURES -eq 0 ]] || exit 1; 142