You could make your own such file with FIMO, the JASPAR MEME files available via the MEME download site, and your genome build of interest (per-chromosome FASTA files from UCSC goldenpath, say), e.g., for assembly hg19
and UCSC chromosome naming scheme:
$ for chr in `seq 1 22` X Y; do echo ${chr}; wget -qO- http://hgdownload.cse.ucsc.edu/goldenpath/hg19/chromosomes/chr${chr}.fa.gz | gunzip -c - > hg19.chr${chr}.fa; done
For each chromosome (omitting the for
loop code for brevity), you can use the fasta-get-markov
in the MEME suite to generate a 5th-order Markov model of kmer frequencies (why 5th order?):
$ fasta-get-markov -m 5 hg19.chr${chr}.fa > hg19.chr${chr}.5th_order_background_model.txt
Here is one way to download a non-redundant, vertebrate JASPAR database (MEME-formatted):
$ wget http://jaspar.genereg.net/download/CORE/JASPAR2020_CORE_vertebrates_non-redundant_pfms_meme.txt
To run a FIMO query with the 5th-order background model and JASPAR database, using a p-value threshold of 1e-4:
$ fimo --verbosity 1 --bgfile hg19.chr${chr}.5th_order_background_model.txt --thresh 1e-4 --text JASPAR2018_CORE_vertebrates_non-redundant_pfms_meme.txt hg19.chr${chr}.fa \
| tail -n+2 \
| awk -vOFS="\t" -vFS="\t" '{ print $3, $4, $5, $1":"$2">"$10, $8, $6 }' \
| sort-bed - \
| starch --omit-signature - \
> hg19.chr${chr}.bed.starch
The output of a FIMO search is a text file which can be modified into a sorted BED file via sort-bed, an example of which is shown above.
To get a faster answer, each per-chromosome query can be put onto its own node on a computational cluster.
Using a p-value threshold of 1e-4 will result in very large files (when uncompressed). Using tools to compress BED files is useful here, as is using a more stringent threshold (1e-5, etc.).
Use of BEDOPS starch
to compress BED files (as shown above, for instance) will give better compression performance than bgzip
with per-chromosome random access and integration with BEDOPS bedops
and bedmap
CLI tools. The bgzip
option offers integration with tabix
and offers finer-grained random access, but it will use more disk space and doesn't integrate with BEDOPS tools.