I've been having an issue with the bedtools fisher command. I want to compare a.bed and b.bed, but I consistently get two errors coming up. It's my intent to eventually compare multiple a.beds and b.beds to get a comparison graph.
This is the head of my a.bed (b.bed has the same structure), and I've tried both with and without the chr[..]. The chromInfo.txt file was downloaded directly from UCSC hg19.
head a.bed
chr1 10525 10526 0.110923
chr1 10525 10526 0.121582
chr1 17841 17846 0.11867
chr1 18495 18496 0.015091
chr1 18495 18496 0.042807
chr1 19234 19235 0.088472
chr1 19234 19235 0.116273
chr1 20824 20825 0.082503
chr1 20824 20825 0.117711
chr1 21681 21682 0.091218
This is the bedtools command I used:
bedtools fisher -a a.bed -b b.bed -g chromInfo.txt
This gets the error:
Error: requested chromosome 1 does not exist in the genome file chromInfo.txt. Exiting.
At first I thought it was something to do with the fact that the files might not have been sorted in the same way, which has been addressed in other questions here, so I did this for a.bed, b.bed and chromInfo:
sort -k1,1 chromInfo.txt > chromInfo_sorted.txt
sort -k1,1 a.bed > sorted_a.bed
sort -k1,1 b.bed > sorted_b.bed
The new bedtools fisher command was:
bedtools fisher -a sorted_a.bed -b sorted_b.bed -g chromInfo_sorted.txt
But this just got the error:
Error: Sorted input specified, but the file a.bed has the following out of order record
chr1 2365 2367 0.148297
I assume if the command got to b.bed, it would produce the same error. I'd be very thankful for any advice!
(It may be worth noting that a.bed and b.bed were made from aDNA Neanderthal and Denisovan reads)
right way to sort a bed file is :
Thank you, this sorted it!
Try bedtools
sortBed
orsort
instead of the Unixsort
command. The difference between the two has been discussed in the following thread.Difference between sortBed in bedtools and sort in unix
Thank you, that's good information to have!