The following instructions assume Linux or OS X. For more information, including Windows instructions, refer to the SeqAn getting started tutorial.
A modern C++11 compiler with OpenMP 3.0 extensions is required to build Yara. If unsure, use GNU G++ 4.9 or newer.
- Git.
- CMake 3.2 or newer.
- G++ 4.9 or newer.
Misc sources downloaded by executing:
$git clone https://github.com/svnbgnk/misc.git
Create a build project by executing CMake as follows:
$ mkdir misc-build $ cd misc-build $ cmake ../misc
Invoke make as follows:
$ make
Count alternative Alignments of a single Occurrence when search with up 3 errors with my Version of the OSS
$ testOSSAlignments -l 100 -mv -e 3
MapMap setup (requires 6-7 GB of RAM)
$ git clone --recurse-submodules https://github.com/svnbgnk/dream_yara.git $ git checkout oss $ cd dream_yara/include/seqan/ $ git remote add upstream https://github.com/svnbgnk/seqan.git $ git checkout upstream/mappa $ cd ../../.. $ mkdir mapmap-build $ cd mapmap-build $ cmake ../dream_yara $ make all
Acquiring hg38.fa
$ DATA/reference $ wget http://hgdownload.soe.ucsc.edu/goldenPath/hg38/bigZips/hg38.fa.gz $ gunzip hg38.fa.gz $ mkdir bin $ cp hg38.fa bin/0.fa
Building the Index (requires 200GB of secondary memory)
$ dream_yara_indexer --threads 8 --output-prefix DATA/hg38_N_index/ DATA/reference/bin/*.fa -td /srv/public/svnbngk/tmp/
Computing sequence mappability and bit vectors with TH = 10
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 3 -T 10 -s 0 -t 20 -o 35 -v -i -O DATA/hg38_N_index/mappability10E3
All mapping with up to 3 errors
$ dream_yara_mapper DATA/hg38_N_index/ DATA/reads/illumina/illumina_1.fa -t 1 -b 1 -ft none -e 3 -s 3 -o result.sam -vv
Stratified all-mapping with strata 2 and 3 errors
$ dream_yara_mapper DATA/hg38_N_index/ DATA/reads/illumina/illumina_1.fa -t 1 -b 1 -ft none -e 3 -s 3 -o result.sam -vv
Mapping with sequence mappability up to 3 errors
$ dream_yara_mapper DATA/hg38_N_index/ DATA/reads/illumina/illumina_1.fa -t 1 -b 1 -ft none -e 3 -s 3 -m DATA/hg38_N_index/mappability10E3/ -o result.sam -vv
Default OSS
$ testOSSAlignments -l 100 -e 1 $ testOSSAlignments -l 100 -e 2 $ testOSSAlignments -l 100 -e 3 $ testOSSAlignments -l 100 -e 4
With 1 read error
$ testOSSAlignments -l 100 -e 4 -em -m 1
Simulating on MapMap OSS
$ testOSSAlignments -l 100 -mv -e 1 $ testOSSAlignments -l 100 -mv -e 2 $ testOSSAlignments -l 100 -mv -e 3 $ testOSSAlignments -l 100 -mv -e 4
With 1 read error
$ testOSSAlignments -l 100 -mv -e 3 -em -m 1
Computation of Sequence Mappability:
- T = 5
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 3 -T 5 -s 0 -t 20 -o 35 -v -i -O DATA/hg38_N_index/mappability5E3
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 2 -T 5 -s 0 -t 20 -o 35 -v -i -O DATA/hg38_N_index/mappability5E2
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 1 -T 5 -s 0 -t 20 -o 35 -v -i -O DATA/hg38_N_index/mappability5E1
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 3 -T 5 -s 0 -t 20 -o 35 -v -O DATA/hg38_N_index/mappability5H3
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 2 -T 5 -s 0 -t 20 -o 35 -v -O DATA/hg38_N_index/mappability5H2
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 1 -T 5 -s 0 -t 20 -o 35 -v -O DATA/hg38_N_index/mappability5H1
- T = 10
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 3 -T 10 -s 0 -t 20 -o 35 -v -i -O DATA/hg38_N_index/mappability10E3
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 2 -T 10 -s 0 -t 20 -o 35 -v -i -O DATA/hg38_N_index/mappability10E2
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 1 -T 10 -s 0 -t 20 -o 35 -v -i -O DATA/hg38_N_index/mappability10E1
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 3 -T 10 -s 0 -t 20 -o 35 -v -O DATA/hg38_N_index/mappability10H3
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 2 -T 10 -s 0 -t 20 -o 35 -v -O DATA/hg38_N_index/mappability10H2
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 1 -T 10 -s 0 -t 20 -o 35 -v -O DATA/hg38_N_index/mappability10H1
- T = 100
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 3 -T 100 -s 0 -t 20 -o 35 -v -i -O DATA/hg38_N_index/mappability100E3
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 2 -T 100 -s 0 -t 20 -o 35 -v -i -O DATA/hg38_N_index/mappability100E2
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 2 -T 100 -s 0 -t 20 -o 35 -v -i -O DATA/hg38_N_index/mappability100E1
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 3 -T 100 -s 0 -t 20 -o 35 -v -O DATA/hg38_N_index/mappability100H3
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 2 -T 100 -s 0 -t 20 -o 35 -v -O DATA/hg38_N_index/mappability100H2
$ dream_yara_mappability DATA/hg38_N_index/ -b 1 -K 100 -E 1 -T 100 -s 0 -t 20 -o 35 -v -O DATA/hg38_N_index/mappability100H1
Using bashscripts in ./bashscripts and reads in ./reads
$ benchmark_v2.sh master.log DATA/hg38_N_index/ DATA/reads/illumina/illumina_1.fa
$ benchmark_hamming.sh masterHamming.log DATA/hg38_N_index/ DATA/reads/illumina/illumina_1.fa
$ benchmark_f2.sh map5.log srv/public/svnbngk/Data/hg38_N_index/ DATA/reads/illumina/illumina_1.fa DATA/hg38_N_index/ mappability5
$ benchmark_f2.sh map10.log srv/public/svnbngk/Data/hg38_N_index/ DATA/reads/illumina/illumina_1.fa DATA/hg38_N_index/ mappability10
$ benchmark_f2.sh map100.log srv/public/svnbngk/Data/hg38_N_index/ DATA/reads/illumina/illumina_1.fa DATA/hg38_N_index/ mappability100
Benchmarking Dream-Yara on a bidirectional index (based on EPR dictionaries) use flag -of
- Benchmarking Dream-Yara with -ft none on a unidirectional Index
- $ git checkout yaraben
To use my fix for mapping without an filter.