diff --git a/test/intersect/chromOrderA.bed b/test/intersect/chromOrderA.bed new file mode 100644 index 0000000000000000000000000000000000000000..6937acfc07996d47b06d5973913048e9aa7d4fd2 --- /dev/null +++ b/test/intersect/chromOrderA.bed @@ -0,0 +1,6 @@ +chr1 10 20 a1 100 + +chr2 10 20 a2 100 + +chr10 10 20 a3 100 + +chr11 10 20 a4 100 + +chrX 10 20 a5 100 + +chrM 10 20 a6 100 + diff --git a/test/intersect/chromOrderB.bed b/test/intersect/chromOrderB.bed new file mode 100644 index 0000000000000000000000000000000000000000..2f2cad1aec0c6101b26818a80a3fea19f1d8b9c3 --- /dev/null +++ b/test/intersect/chromOrderB.bed @@ -0,0 +1,12 @@ +chr1 15 25 a1 100 + +chr1 30 40 a1 100 + +chr2 15 25 a2 100 + +chr2 30 40 a1 100 + +chr10 15 25 a3 100 + +chr10 30 40 a1 100 + +chr11 15 25 a4 100 + +chr11 30 40 a1 100 + +chrX 15 25 a5 100 + +chrX 30 40 a1 100 + +chrM 15 25 a6 100 + +chrM 30 40 a1 100 + diff --git a/test/intersect/human.hg19.genome b/test/intersect/human.hg19.genome new file mode 100644 index 0000000000000000000000000000000000000000..d22ce2d6df72147ba8ddfe13444089d0039be5e2 --- /dev/null +++ b/test/intersect/human.hg19.genome @@ -0,0 +1,94 @@ + +chr1 249250621 +chr10 135534747 +chr11 135006516 +chr11_gl000202_random 40103 +chr12 133851895 +chr13 115169878 +chr14 107349540 +chr15 102531392 +chr16 90354753 +chr17 81195210 +chr17_ctg5_hap1 1680828 +chr17_gl000203_random 37498 +chr17_gl000204_random 81310 +chr17_gl000205_random 174588 +chr17_gl000206_random 41001 +chr18 78077248 +chr18_gl000207_random 4262 +chr19 59128983 +chr19_gl000208_random 92689 +chr19_gl000209_random 159169 +chr1_gl000191_random 106433 +chr1_gl000192_random 547496 +chr2 243199373 +chr20 63025520 +chr21 48129895 +chr21_gl000210_random 27682 +chr22 51304566 +chr3 198022430 +chr4 191154276 +chr4_ctg9_hap1 590426 +chr4_gl000193_random 189789 +chr4_gl000194_random 191469 +chr5 180915260 +chr6 171115067 +chr6_apd_hap1 4622290 +chr6_cox_hap2 4795371 +chr6_dbb_hap3 4610396 +chr6_mann_hap4 4683263 +chr6_mcf_hap5 4833398 +chr6_qbl_hap6 4611984 +chr6_ssto_hap7 4928567 +chr7 159138663 +chr7_gl000195_random 182896 +chr8 146364022 +chr8_gl000196_random 38914 +chr8_gl000197_random 37175 +chr9 141213431 +chr9_gl000198_random 90085 +chr9_gl000199_random 169874 +chr9_gl000200_random 187035 +chr9_gl000201_random 36148 +chrM 16571 +chrUn_gl000211 166566 +chrUn_gl000212 186858 +chrUn_gl000213 164239 +chrUn_gl000214 137718 +chrUn_gl000215 172545 +chrUn_gl000216 172294 +chrUn_gl000217 172149 +chrUn_gl000218 161147 +chrUn_gl000219 179198 +chrUn_gl000220 161802 +chrUn_gl000221 155397 +chrUn_gl000222 186861 +chrUn_gl000223 180455 +chrUn_gl000224 179693 +chrUn_gl000225 211173 +chrUn_gl000226 15008 +chrUn_gl000227 128374 +chrUn_gl000228 129120 +chrUn_gl000229 19913 +chrUn_gl000230 43691 +chrUn_gl000231 27386 +chrUn_gl000232 40652 +chrUn_gl000233 45941 +chrUn_gl000234 40531 +chrUn_gl000235 34474 +chrUn_gl000236 41934 +chrUn_gl000237 45867 +chrUn_gl000238 39939 +chrUn_gl000239 33824 +chrUn_gl000240 41933 +chrUn_gl000241 42152 +chrUn_gl000242 43523 +chrUn_gl000243 43341 +chrUn_gl000244 39929 +chrUn_gl000245 36651 +chrUn_gl000246 38154 +chrUn_gl000247 36422 +chrUn_gl000248 39786 +chrUn_gl000249 38502 +chrX 155270560 +chrY 59373566 diff --git a/test/intersect/human.hg19.vSort.genome b/test/intersect/human.hg19.vSort.genome new file mode 100644 index 0000000000000000000000000000000000000000..ae5e9d328bdb6f3d68321c9348565ddb4ca16356 --- /dev/null +++ b/test/intersect/human.hg19.vSort.genome @@ -0,0 +1,93 @@ +chr1 249250621 +chr2 243199373 +chr3 198022430 +chr4 191154276 +chr5 180915260 +chr6 171115067 +chr7 159138663 +chr8 146364022 +chr9 141213431 +chr10 135534747 +chr11 135006516 +chr12 133851895 +chr13 115169878 +chr14 107349540 +chr15 102531392 +chr16 90354753 +chr17 81195210 +chr18 78077248 +chr19 59128983 +chr20 63025520 +chr21 48129895 +chr22 51304566 +chrX 155270560 +chrY 59373566 +chrM 16571 +chr1_gl000191_random 106433 +chr1_gl000192_random 547496 +chr4_ctg9_hap1 590426 +chr4_gl000193_random 189789 +chr4_gl000194_random 191469 +chr6_apd_hap1 4622290 +chr6_cox_hap2 4795371 +chr6_dbb_hap3 4610396 +chr6_mann_hap4 4683263 +chr6_mcf_hap5 4833398 +chr6_qbl_hap6 4611984 +chr6_ssto_hap7 4928567 +chr7_gl000195_random 182896 +chr8_gl000196_random 38914 +chr8_gl000197_random 37175 +chr9_gl000198_random 90085 +chr9_gl000199_random 169874 +chr9_gl000200_random 187035 +chr9_gl000201_random 36148 +chr11_gl000202_random 40103 +chr17_ctg5_hap1 1680828 +chr17_gl000203_random 37498 +chr17_gl000204_random 81310 +chr17_gl000205_random 174588 +chr17_gl000206_random 41001 +chr18_gl000207_random 4262 +chr19_gl000208_random 92689 +chr19_gl000209_random 159169 +chr21_gl000210_random 27682 +chrUn_gl000211 166566 +chrUn_gl000212 186858 +chrUn_gl000213 164239 +chrUn_gl000214 137718 +chrUn_gl000215 172545 +chrUn_gl000216 172294 +chrUn_gl000217 172149 +chrUn_gl000218 161147 +chrUn_gl000219 179198 +chrUn_gl000220 161802 +chrUn_gl000221 155397 +chrUn_gl000222 186861 +chrUn_gl000223 180455 +chrUn_gl000224 179693 +chrUn_gl000225 211173 +chrUn_gl000226 15008 +chrUn_gl000227 128374 +chrUn_gl000228 129120 +chrUn_gl000229 19913 +chrUn_gl000230 43691 +chrUn_gl000231 27386 +chrUn_gl000232 40652 +chrUn_gl000233 45941 +chrUn_gl000234 40531 +chrUn_gl000235 34474 +chrUn_gl000236 41934 +chrUn_gl000237 45867 +chrUn_gl000238 39939 +chrUn_gl000239 33824 +chrUn_gl000240 41933 +chrUn_gl000241 42152 +chrUn_gl000242 43523 +chrUn_gl000243 43341 +chrUn_gl000244 39929 +chrUn_gl000245 36651 +chrUn_gl000246 38154 +chrUn_gl000247 36422 +chrUn_gl000248 39786 +chrUn_gl000249 38502 diff --git a/test/intersect/j1.bed b/test/intersect/j1.bed new file mode 100644 index 0000000000000000000000000000000000000000..296a67635b6390b5b6c17f623c41be33f9d35dbe --- /dev/null +++ b/test/intersect/j1.bed @@ -0,0 +1 @@ +chr1 98650 98750 a1 100 + diff --git a/test/intersect/new_test-intersect.sh b/test/intersect/new_test-intersect.sh index e23ff4bf2be510102f69d5101d1022e721a31e79..b9cd3ac7ef46e60f511da6073f63dc1b4287360d 100755 --- a/test/intersect/new_test-intersect.sh +++ b/test/intersect/new_test-intersect.sh @@ -219,11 +219,74 @@ echo \ . -1 -1 FCC1MK2ACXX:1:1102:6799:2633#/2 0 . -1 -1 -1 0,0,0 0 . ." > exp $BT intersect -a a_with_bothUnmapped.bam -b b.bed -bed -v > obs check obs exp -#rm obs exp +rm obs exp + +########################################################### +# Test intersection of bam file containing read where one +# mate is mapped and one is not. +############################################################ +echo " intersect.new.t19...\c" +echo \ +"chr1 98650 98704 FCC1MK2ACXX:1:1212:13841:9775#/1 0 + 98604 98704 0,0,0 1 100, 0," > exp +$BT intersect -a oneUnmapped.bam -b j1.bed -bed > obs +check obs exp +rm obs exp +########################################################### +# Test intersection of bam file containing read where one +# mate is mapped and one is not, with noHit (-v) option. +############################################################ +echo " intersect.new.t20...\c" +echo \ +"chr1 -1 -1 FCC1MK2ACXX:1:1212:13841:9775#/2 0 . -1 -1 -1 0,0,0 0 . ." > exp +$BT intersect -a oneUnmapped.bam -b j1.bed -bed -v > obs +check obs exp +rm obs exp +########################################################### +# Test intersection with -sorted, see that order specified +# in genome file is enforced. +############################################################ +echo " intersect.new.t21...\c" +echo \ +"Error: Sorted input specified, but the file chromOrderA.bed has the following record with a different sort order than the genomeFile human.hg19.genome +chr10 10 20 a3 100 +" > exp +$BT intersect -a chromOrderA.bed -b chromOrderB.bed -sorted -g human.hg19.genome 2>obs +check obs exp +rm obs exp + + +########################################################### +# Test intersection with -sorted, see that hits are missed +# With no genome file +############################################################ +echo " intersect.new.t22...\c" +echo \ +"chr1 15 20 a1 100 + +chr2 15 20 a2 100 + +chrX 15 20 a5 100 +" > exp +$BT intersect -a chromOrderA.bed -b chromOrderB.bed -sorted > obs +check obs exp +rm obs exp + + +########################################################### +# Test intersection with -sorted, see that hits are correct +# when sort order of files matches genome file sort order +############################################################ +echo " intersect.new.t23...\c" +echo \ +"chr1 15 20 a1 100 + +chr2 15 20 a2 100 + +chr10 15 20 a3 100 + +chr11 15 20 a4 100 + +chrX 15 20 a5 100 + +chrM 15 20 a6 100 +" > exp +$BT intersect -a chromOrderA.bed -b chromOrderB.bed -sorted -g human.hg19.vSort.genome > obs +check obs exp +rm obs exp diff --git a/test/intersect/oneUnmapped.bam b/test/intersect/oneUnmapped.bam new file mode 100644 index 0000000000000000000000000000000000000000..9bac213a3da9591f9e8bd6dae3fece1adb933b43 Binary files /dev/null and b/test/intersect/oneUnmapped.bam differ diff --git a/test/test.sh b/test/test.sh index 625be7437de11aa24f395f6ce6e16dfa9b52a8ea..f624846bcd71bedd37a99cab28767b1c82563ceb 100644 --- a/test/test.sh +++ b/test/test.sh @@ -29,7 +29,7 @@ echo " Testing bedtools getfasta:" cd getfasta; sh test-getfasta.sh; cd .. echo " Testing bedtools intersect:" -cd intersect; sh test-intersect.sh; cd .. +cd intersect; sh test-intersect.sh; sh new_test-intersect.sh cd .. echo " Testing bedtools jaccard:" cd jaccard; sh test-jaccard.sh; cd ..