1set -e; 2BT=${BT-../../bin/bedtools} 3 4FAILURES=0; 5 6check() 7{ 8 if diff $1 $2; then 9 echo ok 10 else 11 FAILURES=$(expr $FAILURES + 1); 12 echo fail 13 fi 14} 15 16# cat a.bed 17# chr1 20 21 18 19# cat b.bed 20# chr1 20 21 21 22# cat b-one-bp-closer.bed 23# chr1 19 21 24 25########################################################### 26# test 1bp apart; checking for off-by-one errors 27########################################################### 28echo -e " closest.t1...\c" 29echo \ 30"chr1 10 20 chr1 20 21 1" > exp 31$BT closest -a a.bed -b b.bed -d > obs 32check obs exp 33rm obs exp 34 35########################################################### 36# test reciprocal of t1 37########################################################### 38echo -e " closest.t2...\c" 39echo \ 40"chr1 20 21 chr1 10 20 1" > exp 41$BT closest -a b.bed -b a.bed -d > obs 42check obs exp 43rm obs exp 44 45########################################################### 46# test 0bp apart; checking for off-by-one errors 47########################################################### 48echo -e " closest.t3...\c" 49echo \ 50"chr1 10 20 chr1 19 21 0" > exp 51$BT closest -a a.bed -b b-one-bp-closer.bed -d > obs 52check obs exp 53rm obs exp 54 55########################################################### 56# test reciprocal of t3 57########################################################### 58echo -e " closest.t4...\c" 59echo \ 60"chr1 19 21 chr1 10 20 0" > exp 61$BT closest -a b-one-bp-closer.bed -b a.bed -d > obs 62check obs exp 63rm obs exp 64 65########################################################### 66# test closest without forcing different names ( -N ) 67########################################################### 68echo -e " closest.t5...\c" 69echo \ 70"chr1 10 20 break1 chr1 40 50 break1 21 71chr1 55 58 break2 chr1 60 70 break2 3" > exp 72$BT closest -a a.names.bed -b b.names.bed -d > obs 73check obs exp 74rm obs exp 75 76########################################################### 77# test closest with forcing different names ( -N ) 78########################################################### 79echo -e " closest.t6...\c" 80echo \ 81"chr1 10 20 break1 chr1 60 70 break2 41 82chr1 55 58 break2 chr1 40 50 break1 6" > exp 83$BT closest -a a.names.bed -b b.names.bed -d -N > obs 84check obs exp 85rm obs exp 86 87########################################################### 88# test closest forcing -s yet no matching strands on chrom 89########################################################### 90echo -e " closest.t7...\c" 91echo \ 92"chr1 100 200 a 10 + . -1 -1 . -1 ." > exp 93$BT closest -a strand-test-a.bed -b strand-test-b.bed -s > obs 94check obs exp 95rm obs exp 96 97########################################################### 98# test closest forcing -S with only an opp strands on chrom 99########################################################### 100echo -e " closest.t8...\c" 101echo \ 102"chr1 100 200 a 10 + chr1 90 120 b 1 -" > exp 103$BT closest -a strand-test-a.bed -b strand-test-b.bed -S > obs 104check obs exp 105rm obs exp 106 107 108########################################################### 109# test reproting of all overlapping features 110########################################################### 111echo -e " closest.t9...\c" 112echo \ 113"chr1 100 101 chr1 100 101 114chr1 200 201 chr1 150 201 115chr1 200 201 chr1 175 375 116chr1 300 301 chr1 175 375 117chr1 100000 100010 chr1 175 375 118chr1 100020 100040 chr1 175 375 119chr2 1 10 . -1 -1 120chr2 20 30 . -1 -1" > exp 121$BT closest -a close-a.bed -b close-b.bed > obs 122check obs exp 123rm obs exp 124 125########################################################### 126# test reproting of first overlapping feature 127########################################################### 128echo -e " closest.t10...\c" 129echo \ 130"chr1 100 101 chr1 100 101 131chr1 200 201 chr1 150 201 132chr1 300 301 chr1 175 375 133chr1 100000 100010 chr1 175 375 134chr1 100020 100040 chr1 175 375 135chr2 1 10 . -1 -1 136chr2 20 30 . -1 -1" > exp 137$BT closest -a close-a.bed -b close-b.bed -t first > obs 138check obs exp 139rm obs exp 140 141########################################################### 142# test reproting of last overlapping feature 143########################################################### 144echo -e " closest.t11...\c" 145echo \ 146"chr1 100 101 chr1 100 101 147chr1 200 201 chr1 175 375 148chr1 300 301 chr1 175 375 149chr1 100000 100010 chr1 175 375 150chr1 100020 100040 chr1 175 375 151chr2 1 10 . -1 -1 152chr2 20 30 . -1 -1" > exp 153$BT closest -a close-a.bed -b close-b.bed -t last > obs 154check obs exp 155rm obs exp 156 157 158 159########################################################### 160# 161# TEST MULTIPLE DATABASES 162# 163########################################################### 164 165 166########################################################### 167# test 3 dbs, -each mode, which is the default 168########################################################### 169echo -e " closest.t13...\c" 170echo \ 171"chr1 80 100 q1 1 + 1 chr1 20 60 d1.2 2 - 172chr1 80 100 q1 1 + 2 chr1 120 170 db2.2 2 - 173chr1 80 100 q1 1 + 3 chr1 70 90 d3.1 3 -" > exp 174$BT closest -a mq1.bed -b mdb1.bed mdb2.bed mdb3.bed > obs 175check obs exp 176rm obs exp 177 178 179########################################################### 180# test 3 dbs with -names option 181########################################################### 182echo -e " closest.t14...\c" 183echo \ 184"chr1 80 100 q1 1 + a chr1 20 60 d1.2 2 - 185chr1 80 100 q1 1 + b chr1 120 170 db2.2 2 - 186chr1 80 100 q1 1 + c chr1 70 90 d3.1 3 -" > exp 187$BT closest -a mq1.bed -b mdb1.bed mdb2.bed mdb3.bed -names a b c > obs 188check obs exp 189rm obs exp 190 191 192########################################################### 193# test 3 dbs with -filenames option 194########################################################### 195echo -e " closest.t15...\c" 196echo \ 197"chr1 80 100 q1 1 + mdb1.bed chr1 20 60 d1.2 2 - 198chr1 80 100 q1 1 + mdb2.bed chr1 120 170 db2.2 2 - 199chr1 80 100 q1 1 + mdb3.bed chr1 70 90 d3.1 3 -" > exp 200$BT closest -a mq1.bed -b mdb1.bed mdb2.bed mdb3.bed -filenames > obs 201check obs exp 202rm obs exp 203 204########################################################### 205# test 3 dbs, -all mode 206########################################################### 207echo -e " closest.t16...\c" 208echo \ 209"chr1 80 100 q1 1 + 3 chr1 70 90 d3.1 3 -" > exp 210$BT closest -a mq1.bed -b mdb1.bed mdb2.bed mdb3.bed -mdb all > obs 211check obs exp 212rm obs exp 213 214 215########################################################### 216# test 2 dbs, tie mode = all 217########################################################### 218echo -e " closest.t17...\c" 219echo \ 220"chr1 80 100 q1 1 + 1 chr1 20 60 d1.2 2 - 221chr1 80 100 q1 1 + 2 chr1 120 170 db2.2 2 -" > exp 222$BT closest -a mq1.bed -b mdb1.bed mdb2.bed -t all > obs 223check obs exp 224rm obs exp 225 226########################################################### 227# test 2 dbs, tie mode = first 228########################################################### 229echo -e " closest.t18...\c" 230echo \ 231"chr1 80 100 q1 1 + 1 chr1 20 60 d1.2 2 -" > exp 232$BT closest -a mq1.bed -b mdb1.bed mdb2.bed -mdb all -t first > obs 233check obs exp 234rm obs exp 235 236########################################################### 237# test 2 dbs, tie mode = last 238########################################################### 239echo -e " closest.t19...\c" 240echo \ 241"chr1 80 100 q1 1 + 2 chr1 120 170 db2.2 2 -" > exp 242$BT closest -a mq1.bed -b mdb1.bed mdb2.bed -mdb all -t last > obs 243check obs exp 244rm obs exp 245 246########################################################### 247# test same strand 248########################################################### 249echo -e " closest.t20...\c" 250echo \ 251"chr1 80 100 q1 1 + chr1 5 15 d1.1 1 +" > exp 252$BT closest -a mq1.bed -b mdb1.bed -s> obs 253check obs exp 254rm obs exp 255 256########################################################### 257# test diff strand 258########################################################### 259echo -e " closest.t21...\c" 260echo \ 261"chr1 80 100 q1 1 + chr1 20 60 d1.2 2 -" > exp 262$BT closest -a mq1.bed -b mdb1.bed -S> obs 263check obs exp 264rm obs exp 265 266 267########################################################### 268# test 2 dbs, tie mode = all, same strand 269########################################################### 270echo -e " closest.t22...\c" 271echo \ 272"chr1 80 100 q1 1 + 1 chr1 5 15 d1.1 1 +" > exp 273$BT closest -a mq1.bed -b mdb1.bed mdb2.bed -t all -mdb all -s > obs 274check obs exp 275rm obs exp 276 277 278########################################################### 279# test 2 dbs, tie mode = all, diff strand 280########################################################### 281echo -e " closest.t23...\c" 282echo \ 283"chr1 80 100 q1 1 + 1 chr1 20 60 d1.2 2 - 284chr1 80 100 q1 1 + 2 chr1 120 170 db2.2 2 -" > exp 285$BT closest -a mq1.bed -b mdb1.bed mdb2.bed -t all -mdb all -S > obs 286check obs exp 287rm obs exp 288 289 290 291 292 293 294########################################################### 295# 296# TEST -D OPTION 297# 298########################################################### 299 300 301########################################################### 302# hit on left, forward query, forward hit, ref mode 303########################################################### 304echo -e " closest.t24...\c" 305echo \ 306"chr1 80 100 d_q1.1 5 + chr1 40 60 d1F.1 10 + -21" > exp 307$BT closest -a d_q1.bed -b d_d1F.bed -D ref > obs 308check obs exp 309rm obs exp 310 311 312########################################################### 313# hit on left, forward query, forward hit, a mode 314########################################################### 315echo -e " closest.t25...\c" 316echo \ 317"chr1 80 100 d_q1.1 5 + chr1 40 60 d1F.1 10 + -21" > exp 318$BT closest -a d_q1.bed -b d_d1F.bed -D a > obs 319check obs exp 320rm obs exp 321 322########################################################### 323# hit on left, forward query, forward hit, b mode 324########################################################### 325echo -e " closest.t26...\c" 326echo \ 327"chr1 80 100 d_q1.1 5 + chr1 40 60 d1F.1 10 + 21" > exp 328$BT closest -a d_q1.bed -b d_d1F.bed -D b > obs 329check obs exp 330rm obs exp 331 332########################################################### 333# hit on left, forward query, reverse hit, ref mode 334########################################################### 335echo -e " closest.t27...\c" 336echo \ 337"chr1 80 100 d_q1.1 5 + chr1 40 60 d1R.1 10 - -21" > exp 338$BT closest -a d_q1.bed -b d_d1R.bed -D ref > obs 339check obs exp 340rm obs exp 341 342 343########################################################### 344# hit on left, forward query, reverse hit, a mode 345########################################################### 346echo -e " closest.t28...\c" 347echo \ 348"chr1 80 100 d_q1.1 5 + chr1 40 60 d1R.1 10 - -21" > exp 349$BT closest -a d_q1.bed -b d_d1R.bed -D a > obs 350check obs exp 351rm obs exp 352 353########################################################### 354# hit on left, forward query, reverse hit, b mode 355########################################################### 356echo -e " closest.t29...\c" 357echo \ 358"chr1 80 100 d_q1.1 5 + chr1 40 60 d1R.1 10 - -21" > exp 359$BT closest -a d_q1.bed -b d_d1R.bed -D b > obs 360check obs exp 361rm obs exp 362 363########################################################### 364# hit on left, reverse query, forward hit, ref mode 365########################################################### 366echo -e " closest.t30...\c" 367echo \ 368"chr1 80 100 d_q2.1 5 - chr1 40 60 d1F.1 10 + -21" > exp 369$BT closest -a d_q2.bed -b d_d1F.bed -D ref > obs 370check obs exp 371rm obs exp 372 373########################################################### 374# hit on left, reverse query, forward hit, a mode 375########################################################### 376echo -e " closest.t31...\c" 377echo \ 378"chr1 80 100 d_q2.1 5 - chr1 40 60 d1F.1 10 + 21" > exp 379$BT closest -a d_q2.bed -b d_d1F.bed -D a > obs 380check obs exp 381rm obs exp 382 383 384########################################################### 385# hit on left, reverse query, forward hit, b mode 386########################################################### 387echo -e " closest.t32...\c" 388echo \ 389"chr1 80 100 d_q2.1 5 - chr1 40 60 d1F.1 10 + 21" > exp 390$BT closest -a d_q2.bed -b d_d1F.bed -D b > obs 391check obs exp 392rm obs exp 393 394 395 396 397########################################################### 398# hit on left, reverse query, reverse hit, ref mode 399########################################################### 400echo -e " closest.t33...\c" 401echo \ 402"chr1 80 100 d_q2.1 5 - chr1 40 60 d1R.1 10 - -21" > exp 403$BT closest -a d_q2.bed -b d_d1R.bed -D ref > obs 404check obs exp 405rm obs exp 406 407########################################################### 408# hit on left, reverse query, reverse hit, a mode 409########################################################### 410echo -e " closest.t34...\c" 411echo \ 412"chr1 80 100 d_q2.1 5 - chr1 40 60 d1R.1 10 - 21" > exp 413$BT closest -a d_q2.bed -b d_d1R.bed -D a > obs 414check obs exp 415rm obs exp 416 417 418########################################################### 419# hit on left, reverse query, reverse hit, b mode 420########################################################### 421echo -e " closest.t35...\c" 422echo \ 423"chr1 80 100 d_q2.1 5 - chr1 40 60 d1R.1 10 - -21" > exp 424$BT closest -a d_q2.bed -b d_d1R.bed -D b > obs 425check obs exp 426rm obs exp 427 428 429 430########################################################### 431# hit on right, forward query, forward hit, ref mode 432########################################################### 433echo -e " closest.t36...\c" 434echo \ 435"chr1 80 100 d_q1.1 5 + chr1 140 160 d2F.1 10 + 41" > exp 436$BT closest -a d_q1.bed -b d_d2F.bed -D ref > obs 437check obs exp 438rm obs exp 439 440########################################################### 441# hit on right, forward query, forward hit, a mode 442########################################################### 443echo -e " closest.t37...\c" 444echo \ 445"chr1 80 100 d_q1.1 5 + chr1 140 160 d2F.1 10 + 41" > exp 446$BT closest -a d_q1.bed -b d_d2F.bed -D a > obs 447check obs exp 448rm obs exp 449 450########################################################### 451# hit on right, forward query, forward hit, b mode 452########################################################### 453echo -e " closest.t38...\c" 454echo \ 455"chr1 80 100 d_q1.1 5 + chr1 140 160 d2F.1 10 + -41" > exp 456$BT closest -a d_q1.bed -b d_d2F.bed -D b > obs 457check obs exp 458rm obs exp 459 460 461########################################################### 462# hit on right, forward query, reverse hit, ref mode 463########################################################### 464echo -e " closest.t39...\c" 465echo \ 466"chr1 80 100 d_q1.1 5 + chr1 140 160 d2R.1 10 - 41" > exp 467$BT closest -a d_q1.bed -b d_d2R.bed -D ref > obs 468check obs exp 469rm obs exp 470 471########################################################### 472# hit on right, forward query, reverse hit, a mode 473########################################################### 474echo -e " closest.t40...\c" 475echo \ 476"chr1 80 100 d_q1.1 5 + chr1 140 160 d2R.1 10 - 41" > exp 477$BT closest -a d_q1.bed -b d_d2R.bed -D a > obs 478check obs exp 479rm obs exp 480 481########################################################### 482# hit on right, forward query, reverse hit, b mode 483########################################################### 484echo -e " closest.t41...\c" 485echo \ 486"chr1 80 100 d_q1.1 5 + chr1 140 160 d2R.1 10 - 41" > exp 487$BT closest -a d_q1.bed -b d_d2R.bed -D b > obs 488check obs exp 489rm obs exp 490 491########################################################### 492# hit on right, reverse query, forward hit, ref mode 493########################################################### 494echo -e " closest.t42...\c" 495echo \ 496"chr1 80 100 d_q2.1 5 - chr1 140 160 d2F.1 10 + 41" > exp 497$BT closest -a d_q2.bed -b d_d2F.bed -D ref > obs 498check obs exp 499rm obs exp 500 501########################################################### 502# hit on right, reverse query, forward hit, a mode 503########################################################### 504echo -e " closest.t43...\c" 505echo \ 506"chr1 80 100 d_q2.1 5 - chr1 140 160 d2F.1 10 + -41" > exp 507$BT closest -a d_q2.bed -b d_d2F.bed -D a > obs 508check obs exp 509rm obs exp 510 511########################################################### 512# hit on right, reverse query, forward hit, b mode 513########################################################### 514echo -e " closest.t44...\c" 515echo \ 516"chr1 80 100 d_q2.1 5 - chr1 140 160 d2F.1 10 + -41" > exp 517$BT closest -a d_q2.bed -b d_d2F.bed -D b > obs 518check obs exp 519rm obs exp 520 521########################################################### 522# hit on right, reverse query, reverse hit, ref mode 523########################################################### 524echo -e " closest.t45...\c" 525echo \ 526"chr1 80 100 d_q2.1 5 - chr1 140 160 d2R.1 10 - 41" > exp 527$BT closest -a d_q2.bed -b d_d2R.bed -D ref > obs 528check obs exp 529rm obs exp 530 531########################################################### 532# hit on right, reverse query, reverse hit, a mode 533########################################################### 534echo -e " closest.t46...\c" 535echo \ 536"chr1 80 100 d_q2.1 5 - chr1 140 160 d2R.1 10 - -41" > exp 537$BT closest -a d_q2.bed -b d_d2R.bed -D a > obs 538check obs exp 539rm obs exp 540 541########################################################### 542# hit on right, reverse query, reverse hit, b mode 543########################################################### 544echo -e " closest.t47...\c" 545echo \ 546"chr1 80 100 d_q2.1 5 - chr1 140 160 d2R.1 10 - 41" > exp 547$BT closest -a d_q2.bed -b d_d2R.bed -D b > obs 548check obs exp 549rm obs exp 550 551############################################################ 552# Make sure non-overlapping ties are reported 553############################################################ 554echo -e " closest.t48...\c" 555echo \ 556"chr1 10 20 a1 1 - chr1 8 9 b1 1 + 557chr1 10 20 a1 1 - chr1 21 22 b2 1 -" > exp 558$BT closest -a a2.bed -b b2.bed > obs 559check obs exp 560rm obs exp 561 562############################################################ 563# Make sure non-overlapping ties are reported, but with -s 564############################################################ 565echo -e " closest.t49...\c" 566echo \ 567"chr1 10 20 a1 1 - chr1 21 22 b2 1 -" > exp 568$BT closest -a a2.bed -b b2.bed -s > obs 569check obs exp 570rm obs exp 571 572############################################################ 573# Make sure non-overlapping ties are reported, but with -S 574############################################################ 575echo -e " closest.t50...\c" 576echo \ 577"chr1 10 20 a1 1 - chr1 8 9 b1 1 +" > exp 578$BT closest -a a2.bed -b b2.bed -S > obs 579check obs exp 580rm obs exp 581 582 583echo -e " closest.t51...\c" 584echo \ 585"chr1 80 100 d_q2.1 5 - chr1 140 160 d2R.1 10 - 41" > exp 586$BT closest -a d_q2.bed -b d_d2R.bed -D b > obs 587check obs exp 588rm obs exp 589 590 591########################################################### 592# see that stranded sweep doesn't prematurely purge 593# records from the cache 594########################################################### 595echo -e " closest.t52...\c" 596echo \ 597"chr1 80 100 c1 20 + chr1 50 60 d2 20 + 598chr1 110 130 c2 20 - chr1 20 40 d1 20 -" > exp 599$BT closest -a strand-test-c.bed -b strand-test-d.bed -s > obs 600check obs exp 601rm obs exp 602 603########################################################### 604# check oppostite stranded sweep 605########################################################### 606echo -e " closest.t53...\c" 607echo \ 608"chr1 80 100 c1 20 + chr1 20 40 d1 20 - 609chr1 110 130 c2 20 - chr1 50 60 d2 20 +" > exp 610$BT closest -a strand-test-c.bed -b strand-test-d.bed -S > obs 611check exp obs 612rm obs exp 613 614 615########################################################### 616# check -iu 617########################################################### 618echo -e " closest.t54...\c" 619echo \ 620"chr1 100 120 chr1 200 210 81" > exp 621$BT closest -a d.bed -b d_iu.bed -D ref -iu > obs 622check exp obs 623rm exp obs 624 625 626########################################################## 627# check -id 628########################################################### 629echo -e " closest.t55...\c" 630echo \ 631"chr1 100 120 chr1 10 20 -81" > exp 632$BT closest -a d.bed -b d_id.bed -D ref -id > obs 633check exp obs 634rm exp obs 635 636########################################################## 637# check ties, single db 638########################################################### 639echo -e " closest.t56...\c" 640echo \ 641"chr1 10 20 a1 1 - chr1 8 9 b1 1 + 642chr1 10 20 a1 1 - chr1 21 22 b2 1 -" > exp 643$BT closest -a bug157_a.bed -b bug157_b.bed > obs 644check exp obs 645rm exp obs 646 647 648########################################################## 649# check ties, single db, -iu 650########################################################### 651echo -e " closest.t57...\c" 652echo \ 653"chr1 10 20 a1 1 - chr1 21 22 b2 1 - 2" > exp 654$BT closest -a bug157_a.bed -b bug157_b.bed -D ref -iu > obs 655check exp obs 656rm exp obs 657 658########################################################## 659# check ties, single db, -id 660########################################################### 661echo -e " closest.t58...\c" 662echo \ 663"chr1 10 20 a1 1 - chr1 8 9 b1 1 + -2" > exp 664$BT closest -a bug157_a.bed -b bug157_b.bed -D ref -id > obs 665check exp obs 666rm exp obs 667 668########################################################## 669# check -header 670########################################################### 671echo -e " closest.t59...\c" 672echo \ 673"#Header for file a.bed 674chr1 10 20 chr1 20 21" > exp 675$BT closest -a a.bed -b b.bed -header > obs 676check exp obs 677rm exp obs 678 679 680########################################################### 681# 682# BUG 281 TESTS: -s and -S (correct cache purging for 683# opposite strand sweep). 684# 685########################################################### 686 687########################################################### 688# a_med vs b, -s 689########################################################### 690echo -e " closest.t60...\c" 691echo \ 692"chr1 249120154 249120155 21176 0 - chr1 247242115 247242116 551 0 - 693chr1 249132529 249132530 6425 0 + chr1 247495324 247495325 510 0 +" > exp 694$BT closest -a bug281_a.medium.bed -b bug281_b.bed -s > obs 695check exp obs 696rm exp obs 697 698 699########################################################### 700# a_med vs b, -S 701########################################################### 702echo -e " closest.t61...\c" 703echo \ 704"chr1 249120154 249120155 21176 0 - chr1 247495324 247495325 510 0 + 705chr1 249132529 249132530 6425 0 + chr1 247242115 247242116 551 0 -" > exp 706$BT closest -a bug281_a.medium.bed -b bug281_b.bed -S > obs 707check exp obs 708rm exp obs 709 710########################################################### 711# a_med.flip vs b, -s 712########################################################### 713echo -e " closest.t62...\c" 714echo \ 715"chr1 249120154 249120155 21176 0 + chr1 247495324 247495325 510 0 + 716chr1 249132529 249132530 6425 0 - chr1 247242115 247242116 551 0 -" > exp 717$BT closest -a bug281_a.flip.medium.bed -b bug281_b.bed -s > obs 718check exp obs 719rm exp obs 720 721########################################################### 722# a_med.flip vs b, -S 723########################################################### 724echo -e " closest.t63...\c" 725echo \ 726"chr1 249120154 249120155 21176 0 + chr1 247242115 247242116 551 0 - 727chr1 249132529 249132530 6425 0 - chr1 247495324 247495325 510 0 +" > exp 728$BT closest -a bug281_a.flip.medium.bed -b bug281_b.bed -S > obs 729check exp obs 730rm exp obs 731 732########################################################### 733# a_med vs b.flip, -s 734########################################################### 735echo -e " closest.t64...\c" 736echo \ 737"chr1 249120154 249120155 21176 0 - chr1 247495324 247495325 510 0 - 738chr1 249132529 249132530 6425 0 + chr1 247242115 247242116 551 0 +" > exp 739$BT closest -a bug281_a.medium.bed -b bug281_b.flip.bed -s > obs 740check exp obs 741rm exp obs 742 743########################################################### 744# a_med vs b.flip, -S 745########################################################### 746echo -e " closest.t65...\c" 747echo \ 748"chr1 249120154 249120155 21176 0 - chr1 247242115 247242116 551 0 + 749chr1 249132529 249132530 6425 0 + chr1 247495324 247495325 510 0 -" > exp 750$BT closest -a bug281_a.medium.bed -b bug281_b.flip.bed -S > obs 751check exp obs 752rm exp obs 753 754########################################################### 755# a_med.flip vs b.flip, -s 756########################################################### 757echo -e " closest.t66...\c" 758echo \ 759"chr1 249120154 249120155 21176 0 + chr1 247242115 247242116 551 0 + 760chr1 249132529 249132530 6425 0 - chr1 247495324 247495325 510 0 -" > exp 761$BT closest -a bug281_a.flip.medium.bed -b bug281_b.flip.bed -s > obs 762check exp obs 763rm exp obs 764 765########################################################### 766# a_med.flip vs b.flip, -S 767########################################################### 768echo -e " closest.t67...\c" 769echo \ 770"chr1 249120154 249120155 21176 0 + chr1 247495324 247495325 510 0 - 771chr1 249132529 249132530 6425 0 - chr1 247242115 247242116 551 0 +" > exp 772$BT closest -a bug281_a.flip.medium.bed -b bug281_b.flip.bed -S > obs 773check exp obs 774rm exp obs 775 776########################################################### 777# Test intersect -wao with multiple databases and -names 778############################################################ 779echo -e " closest.t68...\c" 780echo \ 781"1 100 200 a1 ax b 1 100 200 b1 bx 7821 100 200 a1 ax c 1 500 600 c4 cq 7831 300 400 a2 ay b 1 100 200 b1 bx 7841 300 400 a2 ay c 1 500 600 c4 cq 7851 400 500 a3 az b 1 100 200 b1 bx 7861 400 500 a3 az c 1 500 600 c4 cq 7872 500 600 a4 aq . . -1 -1 . ." > exp 788$BT closest -a null_a.bed -b null_b.bed null_c.bed -names b c > obs 789check exp obs 790rm exp obs 791 792########################################################### 793# Test -mdb all 794############################################################ 795echo -e " closest.t69...\c" 796echo \ 797"chr10 21805001 21805500 shores.bed chr10 21803197 21805197 0 0 798chr10 21805001 21805500 tfbs.bed chr10 21805031 21805041 V 931 - 0 0 799chr10 21805001 21805500 islands.bed chr10 21805197 21805759 CpG:_22 0 0" > exp 800$BT closest -a dmr.bed -b islands.bed tfbs.bed shores.bed -filenames -d -mdb all > obs 801check exp obs 802rm exp obs 803 804########################################################### 805# Test -mdb all with the islands record having no overlap 806############################################################ 807echo -e " closest.t70...\c" 808echo \ 809"chr10 21805001 21805500 shores.bed chr10 21803197 21805197 0 0 810chr10 21805001 21805500 tfbs.bed chr10 21805031 21805041 V 931 - 0 0" > exp 811$BT closest -a dmr.bed -b islands.2.bed tfbs.bed shores.bed -filenames -d -mdb all > obs 812check exp obs 813rm exp obs 814 815########################################################### 816# Test -mdb each with the islands record having no overlap 817############################################################ 818echo -e " closest.t71...\c" 819echo \ 820"chr10 21805001 21805500 islands.2.bed chr10 21805597 21805759 CpG:_22 0 98 821chr10 21805001 21805500 tfbs.bed chr10 21805031 21805041 V 931 - 0 0 822chr10 21805001 21805500 shores.bed chr10 21803197 21805197 0 0" > exp 823$BT closest -a dmr.bed -b islands.2.bed tfbs.bed shores.bed -filenames -d -mdb each > obs 824check exp obs 825rm exp obs 826 827STARTWD=$(pwd); 828for ADDITIONAL_TEST in \ 829 sortAndNaming/test-sort-and-naming.sh \ 830 kclosest/test-kclosest.sh \ 831; do 832 # In case the cd operation fails, combine it with the script execution 833 cd $(dirname "${STARTWD}/${ADDITIONAL_TEST}") \ 834 && bash $(basename "${STARTWD}/${ADDITIONAL_TEST}") \ 835 || FAILURES=$(expr $FAILURES + 1); 836done 837 838[[ $FAILURES -eq 0 ]] || exit 1; 839