├── .github ├── apple.svg ├── example.png ├── example.tex └── linux.svg ├── .gitignore ├── .gitmodules ├── .travis.yml ├── CHANGELOG.rst ├── CMakeLists.txt ├── LICENSE.rst ├── README.rst ├── benchmarks ├── CMakeLists.txt ├── bench.cpp └── bench.sh ├── include └── libdivsufsort │ ├── LICENSE │ └── divsufsort.hpp ├── src ├── CMakeLists.txt ├── algo.hpp ├── common.hpp ├── find2_index_approx.hpp ├── genmap.cpp ├── genmap_helper.hpp ├── indexing.hpp ├── mappability.hpp ├── output.hpp └── seqan_libdivsufsort.h └── tests ├── CMakeLists.txt ├── bowtie-test.sh ├── test_cases ├── README.rst ├── case_1a │ ├── bed_freq16 │ │ └── genome.genmap.bedgraph │ ├── bed_map │ │ └── genome.genmap.bedgraph │ ├── csv │ │ └── genome.genmap.csv │ ├── genome.fa │ ├── raw_freq16 │ │ └── genome.genmap.freq16 │ ├── raw_freq8 │ │ └── genome.genmap.freq8 │ ├── raw_map │ │ └── genome.genmap.map │ ├── txt_freq16 │ │ └── genome.genmap.txt │ ├── txt_freq8 │ │ └── genome.genmap.txt │ ├── txt_map │ │ └── genome.genmap.txt │ ├── wig_freq16 │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig │ └── wig_map │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig ├── case_1b │ ├── bed_freq16 │ │ └── genome.genmap.bedgraph │ ├── bed_map │ │ └── genome.genmap.bedgraph │ ├── csv │ │ └── genome.genmap.csv │ ├── genome.fa │ ├── raw_freq16 │ │ └── genome.genmap.freq16 │ ├── raw_freq8 │ │ └── genome.genmap.freq8 │ ├── raw_map │ │ └── genome.genmap.map │ ├── txt_freq16 │ │ └── genome.genmap.txt │ ├── txt_map │ │ └── genome.genmap.txt │ ├── wig_freq16 │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig │ └── wig_map │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig ├── case_1c │ ├── bed_freq16 │ │ └── genome.genmap.bedgraph │ ├── bed_map │ │ └── genome.genmap.bedgraph │ ├── csv │ │ └── genome.genmap.csv │ ├── genome.fa │ ├── raw_freq16 │ │ └── genome.genmap.freq16 │ ├── raw_freq8 │ │ └── genome.genmap.freq8 │ ├── raw_map │ │ └── genome.genmap.map │ ├── txt_freq16 │ │ └── genome.genmap.txt │ ├── txt_map │ │ └── genome.genmap.txt │ ├── wig_freq16 │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig │ └── wig_map │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig ├── case_1d │ ├── bed_freq16 │ │ └── genome.genmap.bedgraph │ ├── bed_map │ │ └── genome.genmap.bedgraph │ ├── csv │ │ └── genome.genmap.csv │ ├── genome.fa │ ├── raw_freq16 │ │ └── genome.genmap.freq16 │ ├── raw_freq8 │ │ └── genome.genmap.freq8 │ ├── raw_map │ │ └── genome.genmap.map │ ├── txt_freq16 │ │ └── genome.genmap.txt │ ├── txt_map │ │ └── genome.genmap.txt │ ├── wig_freq16 │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig │ └── wig_map │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig ├── case_1e │ ├── bed_freq16 │ │ └── genome.genmap.bedgraph │ ├── bed_map │ │ └── genome.genmap.bedgraph │ ├── csv │ │ └── genome.genmap.csv │ ├── genome.fa │ ├── raw_freq16 │ │ └── genome.genmap.freq16 │ ├── raw_freq8 │ │ └── genome.genmap.freq8 │ ├── raw_map │ │ └── genome.genmap.map │ ├── txt_freq16 │ │ └── genome.genmap.txt │ ├── txt_map │ │ └── genome.genmap.txt │ ├── wig_freq16 │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig │ └── wig_map │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig ├── case_1f │ ├── bed_freq16 │ │ └── genome.genmap.bedgraph │ ├── bed_map │ │ └── genome.genmap.bedgraph │ ├── csv │ │ └── genome.genmap.csv │ ├── genome.fa │ ├── raw_freq16 │ │ └── genome.genmap.freq16 │ ├── raw_freq8 │ │ └── genome.genmap.freq8 │ ├── raw_map │ │ └── genome.genmap.map │ ├── txt_freq16 │ │ └── genome.genmap.txt │ ├── txt_map │ │ └── genome.genmap.txt │ ├── wig_freq16 │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig │ └── wig_map │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig ├── case_1g │ ├── bed_freq16 │ │ └── genome.genmap.bedgraph │ ├── bed_map │ │ └── genome.genmap.bedgraph │ ├── csv │ │ └── genome.genmap.csv │ ├── genome.fa │ ├── raw_freq16 │ │ └── genome.genmap.freq16 │ ├── raw_freq8 │ │ └── genome.genmap.freq8 │ ├── raw_map │ │ └── genome.genmap.map │ ├── subset.bed │ ├── txt_freq16 │ │ └── genome.genmap.txt │ ├── txt_map │ │ └── genome.genmap.txt │ ├── wig_freq16 │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig │ └── wig_map │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig ├── case_2a │ ├── bed_freq16 │ │ └── genome.genmap.bedgraph │ ├── bed_map │ │ └── genome.genmap.bedgraph │ ├── csv │ │ └── genome.genmap.csv │ ├── genome.fa │ ├── raw_freq16 │ │ └── genome.genmap.freq16 │ ├── raw_freq8 │ │ └── genome.genmap.freq8 │ ├── raw_map │ │ └── genome.genmap.map │ ├── txt_freq16 │ │ └── genome.genmap.txt │ ├── txt_map │ │ └── genome.genmap.txt │ ├── wig_freq16 │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig │ └── wig_map │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig ├── case_2b │ ├── bed_freq16 │ │ └── genome.genmap.bedgraph │ ├── bed_map │ │ └── genome.genmap.bedgraph │ ├── csv │ │ └── genome.genmap.csv │ ├── genome.fa │ ├── raw_freq16 │ │ └── genome.genmap.freq16 │ ├── raw_freq8 │ │ └── genome.genmap.freq8 │ ├── raw_map │ │ └── genome.genmap.map │ ├── txt_freq16 │ │ └── genome.genmap.txt │ ├── txt_map │ │ └── genome.genmap.txt │ ├── wig_freq16 │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig │ └── wig_map │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig ├── case_2c │ ├── bed_freq16 │ │ └── genome.genmap.bedgraph │ ├── bed_map │ │ └── genome.genmap.bedgraph │ ├── csv │ │ └── genome.genmap.csv │ ├── genome.fa │ ├── raw_freq16 │ │ └── genome.genmap.freq16 │ ├── raw_freq8 │ │ └── genome.genmap.freq8 │ ├── raw_map │ │ └── genome.genmap.map │ ├── txt_freq16 │ │ └── genome.genmap.txt │ ├── txt_map │ │ └── genome.genmap.txt │ ├── wig_freq16 │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig │ └── wig_map │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig ├── case_2d │ ├── bed_freq16 │ │ └── genome.genmap.bedgraph │ ├── bed_map │ │ └── genome.genmap.bedgraph │ ├── csv │ │ └── genome.genmap.csv │ ├── genome.fa │ ├── raw_freq16 │ │ └── genome.genmap.freq16 │ ├── raw_freq8 │ │ └── genome.genmap.freq8 │ ├── raw_map │ │ └── genome.genmap.map │ ├── txt_freq16 │ │ └── genome.genmap.txt │ ├── txt_map │ │ └── genome.genmap.txt │ ├── wig_freq16 │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig │ └── wig_map │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig ├── case_2e │ ├── bed_freq16 │ │ └── genome.genmap.bedgraph │ ├── bed_map │ │ └── genome.genmap.bedgraph │ ├── csv │ │ └── genome.genmap.csv │ ├── genome.fa │ ├── raw_freq16 │ │ └── genome.genmap.freq16 │ ├── raw_freq8 │ │ └── genome.genmap.freq8 │ ├── raw_map │ │ └── genome.genmap.map │ ├── subset.bed │ ├── txt_freq16 │ │ └── genome.genmap.txt │ ├── txt_map │ │ └── genome.genmap.txt │ ├── wig_freq16 │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig │ └── wig_map │ │ ├── genome.genmap.chrom.sizes │ │ └── genome.genmap.wig ├── case_3a │ ├── bed_freq16 │ │ ├── genome1.genmap.bedgraph │ │ ├── genome2.genmap.bedgraph │ │ └── genome3.genmap.bedgraph │ ├── bed_map │ │ ├── genome1.genmap.bedgraph │ │ ├── genome2.genmap.bedgraph │ │ └── genome3.genmap.bedgraph │ ├── csv │ │ ├── genome1.genmap.csv │ │ ├── genome2.genmap.csv │ │ └── genome3.genmap.csv │ ├── genome1.fa │ ├── genome2.fa │ ├── genome3.fa │ ├── raw_freq16 │ │ ├── genome1.genmap.freq16 │ │ ├── genome2.genmap.freq16 │ │ └── genome3.genmap.freq16 │ ├── raw_freq8 │ │ ├── genome1.genmap.freq8 │ │ ├── genome2.genmap.freq8 │ │ └── genome3.genmap.freq8 │ ├── raw_map │ │ ├── genome1.genmap.map │ │ ├── genome2.genmap.map │ │ └── genome3.genmap.map │ ├── txt_freq16 │ │ ├── genome1.genmap.txt │ │ ├── genome2.genmap.txt │ │ └── genome3.genmap.txt │ ├── txt_map │ │ ├── genome1.genmap.txt │ │ ├── genome2.genmap.txt │ │ └── genome3.genmap.txt │ ├── wig_freq16 │ │ ├── genome1.genmap.chrom.sizes │ │ ├── genome1.genmap.wig │ │ ├── genome2.genmap.chrom.sizes │ │ ├── genome2.genmap.wig │ │ ├── genome3.genmap.chrom.sizes │ │ └── genome3.genmap.wig │ └── wig_map │ │ ├── genome1.genmap.chrom.sizes │ │ ├── genome1.genmap.wig │ │ ├── genome2.genmap.chrom.sizes │ │ ├── genome2.genmap.wig │ │ ├── genome3.genmap.chrom.sizes │ │ └── genome3.genmap.wig ├── case_3b │ ├── bed_freq16 │ │ ├── genome1.genmap.bedgraph │ │ ├── genome2.genmap.bedgraph │ │ └── genome3.genmap.bedgraph │ ├── bed_map │ │ ├── genome1.genmap.bedgraph │ │ ├── genome2.genmap.bedgraph │ │ └── genome3.genmap.bedgraph │ ├── csv │ │ ├── genome1.genmap.csv │ │ ├── genome2.genmap.csv │ │ └── genome3.genmap.csv │ ├── genome1.fa │ ├── genome2.fa │ ├── genome3.fa │ ├── raw_freq16 │ │ ├── genome1.genmap.freq16 │ │ ├── genome2.genmap.freq16 │ │ └── genome3.genmap.freq16 │ ├── raw_freq8 │ │ ├── genome1.genmap.freq8 │ │ ├── genome2.genmap.freq8 │ │ └── genome3.genmap.freq8 │ ├── raw_map │ │ ├── genome1.genmap.map │ │ ├── genome2.genmap.map │ │ └── genome3.genmap.map │ ├── txt_freq16 │ │ ├── genome1.genmap.txt │ │ ├── genome2.genmap.txt │ │ └── genome3.genmap.txt │ ├── txt_map │ │ ├── genome1.genmap.txt │ │ ├── genome2.genmap.txt │ │ └── genome3.genmap.txt │ ├── wig_freq16 │ │ ├── genome1.genmap.chrom.sizes │ │ ├── genome1.genmap.wig │ │ ├── genome2.genmap.chrom.sizes │ │ ├── genome2.genmap.wig │ │ ├── genome3.genmap.chrom.sizes │ │ └── genome3.genmap.wig │ └── wig_map │ │ ├── genome1.genmap.chrom.sizes │ │ ├── genome1.genmap.wig │ │ ├── genome2.genmap.chrom.sizes │ │ ├── genome2.genmap.wig │ │ ├── genome3.genmap.chrom.sizes │ │ └── genome3.genmap.wig ├── case_3c │ ├── bed_freq16 │ │ ├── genome1.genmap.bedgraph │ │ ├── genome2.genmap.bedgraph │ │ └── genome3.genmap.bedgraph │ ├── bed_map │ │ ├── genome1.genmap.bedgraph │ │ ├── genome2.genmap.bedgraph │ │ └── genome3.genmap.bedgraph │ ├── csv │ │ ├── genome1.genmap.csv │ │ ├── genome2.genmap.csv │ │ └── genome3.genmap.csv │ ├── genome1.fa │ ├── genome2.fa │ ├── genome3.fa │ ├── raw_freq16 │ │ ├── genome1.genmap.freq16 │ │ ├── genome2.genmap.freq16 │ │ └── genome3.genmap.freq16 │ ├── raw_freq8 │ │ ├── genome1.genmap.freq8 │ │ ├── genome2.genmap.freq8 │ │ └── genome3.genmap.freq8 │ ├── raw_map │ │ ├── genome1.genmap.map │ │ ├── genome2.genmap.map │ │ └── genome3.genmap.map │ ├── txt_freq16 │ │ ├── genome1.genmap.txt │ │ ├── genome2.genmap.txt │ │ └── genome3.genmap.txt │ ├── txt_map │ │ ├── genome1.genmap.txt │ │ ├── genome2.genmap.txt │ │ └── genome3.genmap.txt │ ├── wig_freq16 │ │ ├── genome1.genmap.chrom.sizes │ │ ├── genome1.genmap.wig │ │ ├── genome2.genmap.chrom.sizes │ │ ├── genome2.genmap.wig │ │ ├── genome3.genmap.chrom.sizes │ │ └── genome3.genmap.wig │ └── wig_map │ │ ├── genome1.genmap.chrom.sizes │ │ ├── genome1.genmap.wig │ │ ├── genome2.genmap.chrom.sizes │ │ ├── genome2.genmap.wig │ │ ├── genome3.genmap.chrom.sizes │ │ └── genome3.genmap.wig ├── case_3d │ ├── bed_freq16 │ │ ├── genome1.genmap.bedgraph │ │ ├── genome2.genmap.bedgraph │ │ └── genome3.genmap.bedgraph │ ├── bed_map │ │ ├── genome1.genmap.bedgraph │ │ ├── genome2.genmap.bedgraph │ │ └── genome3.genmap.bedgraph │ ├── csv │ │ ├── genome1.genmap.csv │ │ ├── genome2.genmap.csv │ │ └── genome3.genmap.csv │ ├── genome1.fa │ ├── genome2.fa │ ├── genome3.fa │ ├── raw_freq16 │ │ ├── genome1.genmap.freq16 │ │ ├── genome2.genmap.freq16 │ │ └── genome3.genmap.freq16 │ ├── raw_freq8 │ │ ├── genome1.genmap.freq8 │ │ ├── genome2.genmap.freq8 │ │ └── genome3.genmap.freq8 │ ├── raw_map │ │ ├── genome1.genmap.map │ │ ├── genome2.genmap.map │ │ └── genome3.genmap.map │ ├── txt_freq16 │ │ ├── genome1.genmap.txt │ │ ├── genome2.genmap.txt │ │ └── genome3.genmap.txt │ ├── txt_map │ │ ├── genome1.genmap.txt │ │ ├── genome2.genmap.txt │ │ └── genome3.genmap.txt │ ├── wig_freq16 │ │ ├── genome1.genmap.chrom.sizes │ │ ├── genome1.genmap.wig │ │ ├── genome2.genmap.chrom.sizes │ │ ├── genome2.genmap.wig │ │ ├── genome3.genmap.chrom.sizes │ │ └── genome3.genmap.wig │ └── wig_map │ │ ├── genome1.genmap.chrom.sizes │ │ ├── genome1.genmap.wig │ │ ├── genome2.genmap.chrom.sizes │ │ ├── genome2.genmap.wig │ │ ├── genome3.genmap.chrom.sizes │ │ └── genome3.genmap.wig ├── case_3e │ ├── bed_freq16 │ │ ├── genome1.genmap.bedgraph │ │ └── genome3.genmap.bedgraph │ ├── bed_map │ │ ├── genome1.genmap.bedgraph │ │ └── genome3.genmap.bedgraph │ ├── csv │ │ ├── genome1.genmap.csv │ │ └── genome3.genmap.csv │ ├── genome1.fa │ ├── genome2.fa │ ├── genome3.fa │ ├── raw_freq16 │ │ ├── genome1.genmap.freq16 │ │ └── genome3.genmap.freq16 │ ├── raw_freq8 │ │ ├── genome1.genmap.freq8 │ │ └── genome3.genmap.freq8 │ ├── raw_map │ │ ├── genome1.genmap.map │ │ └── genome3.genmap.map │ ├── subset.bed │ ├── txt_freq16 │ │ ├── genome1.genmap.txt │ │ └── genome3.genmap.txt │ ├── txt_map │ │ ├── genome1.genmap.txt │ │ └── genome3.genmap.txt │ ├── wig_freq16 │ │ ├── genome1.genmap.chrom.sizes │ │ ├── genome1.genmap.wig │ │ ├── genome3.genmap.chrom.sizes │ │ └── genome3.genmap.wig │ └── wig_map │ │ ├── genome1.genmap.chrom.sizes │ │ ├── genome1.genmap.wig │ │ ├── genome3.genmap.chrom.sizes │ │ └── genome3.genmap.wig └── case_3f │ ├── bed_freq16 │ ├── genome1.genmap.bedgraph │ └── genome3.genmap.bedgraph │ ├── bed_map │ ├── genome1.genmap.bedgraph │ └── genome3.genmap.bedgraph │ ├── csv │ ├── genome1.genmap.csv │ └── genome3.genmap.csv │ ├── genome1.fa │ ├── genome2.fa │ ├── genome3.fa │ ├── raw_freq16 │ ├── genome1.genmap.freq16 │ └── genome3.genmap.freq16 │ ├── raw_freq8 │ ├── genome1.genmap.freq8 │ └── genome3.genmap.freq8 │ ├── raw_map │ ├── genome1.genmap.map │ └── genome3.genmap.map │ ├── subset.bed │ ├── txt_freq16 │ ├── genome1.genmap.txt │ └── genome3.genmap.txt │ ├── txt_map │ ├── genome1.genmap.txt │ └── genome3.genmap.txt │ ├── wig_freq16 │ ├── genome1.genmap.chrom.sizes │ ├── genome1.genmap.wig │ ├── genome3.genmap.chrom.sizes │ └── genome3.genmap.wig │ └── wig_map │ ├── genome1.genmap.chrom.sizes │ ├── genome1.genmap.wig │ ├── genome3.genmap.chrom.sizes │ └── genome3.genmap.wig ├── tests.cpp └── tests.sh /.github/apple.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.github/example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/.github/example.png -------------------------------------------------------------------------------- /.github/example.tex: -------------------------------------------------------------------------------- 1 | \documentclass[20pt,border=5pt,convert={true}]{standalone} 2 | 3 | \usepackage[table]{xcolor} 4 | \usepackage{tabu} 5 | \definecolor{myclr1}{HTML}{0366d6} 6 | \definecolor{mygrey}{gray}{0.75} 7 | \definecolor{mygrey2}{gray}{0.85} 8 | \definecolor{mygrey3}{gray}{0.92} 9 | 10 | \standaloneconfig{convert={convertexe={convert}}} 11 | \usepackage{xcolor} 12 | \newcommand{\redBit}[1]{\begingroup\color{myclr1}\textbf{#1}\endgroup} 13 | 14 | \newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} 15 | 16 | \begin{document} 17 | 18 | \pagecolor[RGB]{255,255,255}% white = 255,255,255 19 | \LARGE 20 | 21 | \taburulecolor{mygrey} 22 | \def\arraystretch{1.3} 23 | % \setlength\tabcolsep{8.5pt} 24 | \begin{tabular}{|r|C{10mm}|C{10mm}|C{10mm}|C{10mm}|C{10mm}|C{10mm}|C{10mm}|C{10mm}|C{10mm}|C{10mm}|C{10mm}|C{10mm}|C{10mm}|C{10mm}|C{10mm}|} 25 | \hline 26 | $i\phantom{]}$ & 0 & \redBit{1} & 2 & 3 & 4 & 5 & \redBit{6} & 7 & 8 & 9 & 10 & \redBit{11} & 12 & 13 & 14 \\ 27 | \hline 28 | $T[i]$ & A & \cellcolor{mygrey2}\redBit{T} & \cellcolor{mygrey2}\redBit{C} & \cellcolor{mygrey2}\redBit{T} & \cellcolor{mygrey2}\redBit{A} & G & \cellcolor{mygrey3}{G} & \cellcolor{mygrey3}{C} & \cellcolor{mygrey3}{T} & \cellcolor{mygrey3}{A} & A & \cellcolor{mygrey3}{T} & \cellcolor{mygrey3}{C} & \cellcolor{mygrey3}{T} & \cellcolor{mygrey3}{A} \\ 29 | \hline 30 | $M[i]$ & .5 & \redBit{.33} & .5 & 1.0 & 1.0 & 1.0 & .33 & .5 & 1.0 & 1.0 & .5 & .33 & .0 & .0 & .0 \\ 31 | \hline 32 | $F[i]$ & 2 & \redBit{3} & 2 & 1 & 1 & 1 & 3 & 2 & 1 & 1 & 2 & 3 & 0 & 0 & 0 \\ 33 | \hline 34 | \end{tabular} 35 | \end{document} 36 | -------------------------------------------------------------------------------- /.github/linux.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | build 3 | cmake-build-debug 4 | venv 5 | *.aux 6 | *.log 7 | *.pdf 8 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "include/seqan"] 2 | path = include/seqan 3 | url = https://github.com/seqan/seqan.git 4 | branch = develop 5 | 6 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: true 2 | language: cpp 3 | matrix: 4 | include: 5 | 6 | ########################################################################## 7 | # GCC on Linux 8 | ########################################################################## 9 | 10 | - os: linux 11 | compiler: gcc-4.9 12 | addons: 13 | apt: 14 | sources: ['ubuntu-toolchain-r-test'] 15 | packages: ['cmake', 'g++-4.9'] 16 | install: export CXX="g++-4.9" 17 | 18 | - os: linux 19 | compiler: gcc-5 20 | addons: 21 | apt: 22 | sources: ['ubuntu-toolchain-r-test'] 23 | packages: ['cmake', 'g++-5'] 24 | install: export CXX="g++-5" 25 | 26 | - os: linux 27 | compiler: gcc-6 28 | addons: 29 | apt: 30 | sources: ['ubuntu-toolchain-r-test'] 31 | packages: ['cmake', 'g++-6'] 32 | install: export CXX="g++-6" 33 | 34 | - os: linux 35 | compiler: gcc-7 36 | addons: 37 | apt: 38 | sources: ['ubuntu-toolchain-r-test'] 39 | packages: ['cmake', 'g++-7'] 40 | install: export CXX="g++-7" 41 | 42 | - os: linux 43 | compiler: gcc-8 44 | addons: 45 | apt: 46 | sources: ['ubuntu-toolchain-r-test'] 47 | packages: ['cmake', 'g++-8'] 48 | install: export CXX="g++-8" 49 | 50 | ########################################################################## 51 | # Clang on Linux 52 | ########################################################################## 53 | 54 | - os: linux 55 | dist: trusty 56 | compiler: clang-3.8 57 | addons: 58 | apt: 59 | sources: ['llvm-toolchain-precise-3.8', 'ubuntu-toolchain-r-test'] 60 | packages: ['cmake', 'clang-3.8', 'g++-7'] # g++ required for newer libstdc++ 61 | install: export CXX="clang++-3.8" 62 | 63 | - os: linux 64 | dist: trusty 65 | compiler: clang-3.9 66 | addons: 67 | apt: 68 | sources: ['llvm-toolchain-trusty-3.9', 'ubuntu-toolchain-r-test'] 69 | packages: ['cmake', 'clang-3.9', 'g++-7'] # g++ required for newer libstdc++ 70 | install: export CXX="clang++-3.9" 71 | 72 | - os: linux 73 | dist: trusty 74 | compiler: clang-4.0 75 | addons: 76 | apt: 77 | sources: ['llvm-toolchain-trusty-4.0', 'ubuntu-toolchain-r-test'] 78 | packages: ['cmake', 'clang-4.0', 'g++-7'] # g++ required for newer libstdc++ 79 | install: export CXX="clang++-4.0" 80 | 81 | - os: linux 82 | dist: trusty 83 | compiler: clang-5.0 84 | addons: 85 | apt: 86 | sources: ['llvm-toolchain-trusty-5.0', 'ubuntu-toolchain-r-test'] 87 | packages: ['cmake', 'clang-5.0', 'g++-7'] # g++ required for newer libstdc++ 88 | install: export CXX="clang++-5.0" 89 | 90 | - os: linux 91 | dist: trusty 92 | compiler: clang-6.0 93 | addons: 94 | apt: 95 | sources: ['llvm-toolchain-trusty-6.0', 'ubuntu-toolchain-r-test'] 96 | packages: ['cmake', 'clang-6.0', 'g++-7'] # g++ required for newer libstdc++ 97 | install: export CXX="clang++-6.0" 98 | 99 | - os: linux 100 | dist: trusty 101 | compiler: clang-7.0 102 | addons: 103 | apt: 104 | sources: ['llvm-toolchain-trusty-7', 'ubuntu-toolchain-r-test'] 105 | packages: ['cmake', 'clang-7', 'g++-7'] # g++ required for newer libstdc++ 106 | install: export CXX="clang++-7" 107 | 108 | ########################################################################## 109 | # Clang on OSX (with Xcode) 110 | ########################################################################## 111 | 112 | - os: osx 113 | osx_image: xcode7.3 114 | compiler: clang 115 | 116 | - os: osx 117 | osx_image: xcode8.3 118 | compiler: clang 119 | 120 | - os: osx 121 | osx_image: xcode9.4 122 | compiler: clang 123 | 124 | - os: osx 125 | osx_image: xcode10.1 126 | compiler: clang 127 | 128 | ########################################################################## 129 | # GCC on OSX 130 | ########################################################################## 131 | 132 | # Homebrew seems not to have the latest bugfixes :( 133 | # https://github.com/nest/nest-simulator/issues/486 134 | # - os: osx 135 | # osx_image: xcode8.3 136 | # compiler: gcc-4.9 137 | # before_install: 138 | # - brew update 139 | # - brew install gcc@4.9 140 | # - sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/ 141 | # - sudo xcode-select -s /Library/Developer/CommandLineTools 142 | # install: export CXX="g++-4.9" 143 | # 144 | # - os: osx 145 | # osx_image: xcode8.3 146 | # compiler: gcc-5 147 | # before_install: 148 | # - brew update 149 | # - travis_wait 60 brew install gcc@5 150 | # - sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/ 151 | # - sudo xcode-select -s /Library/Developer/CommandLineTools 152 | # install: export CXX="g++-5" 153 | 154 | # - os: osx 155 | # osx_image: xcode8.3 156 | # compiler: gcc-6 157 | # before_install: 158 | # - brew update 159 | # - travis_wait 60 brew install gcc@6 160 | # install: export CXX="g++-6" 161 | # 162 | # - os: osx 163 | # osx_image: xcode8.3 164 | # compiler: gcc-7 165 | # before_install: 166 | # - brew update 167 | # - travis_wait 60 brew install gcc@7 168 | # install: export CXX="g++-7" 169 | # 170 | # - os: osx 171 | # osx_image: xcode8.3 172 | # compiler: gcc-8 173 | # before_install: 174 | # - brew update 175 | # - travis_wait 60 brew install gcc@8 176 | # install: export CXX="g++-8" 177 | 178 | # Debug builds on linux (gcc) with sanitizer, TODO: add coverage 179 | - os: linux 180 | compiler: gcc-7 181 | addons: 182 | apt: 183 | sources: ['ubuntu-toolchain-r-test'] 184 | packages: ['cmake', 'g++-7'] 185 | install: export CXX="g++-7" 186 | # ubuntu toolchain does not contain the latest bugfixes for /usr/bin/ld 187 | env: CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Debug" CMAKE_CXX_FLAGS="-fsanitize=address -fuse-ld=gold" 188 | 189 | # - os: linux 190 | # dist: trusty 191 | # compiler: clang-5.0 192 | # addons: 193 | # apt: 194 | # sources: ['llvm-toolchain-trusty-5.0', 'ubuntu-toolchain-r-test'] 195 | # packages: ['cmake', 'clang-5.0', 'g++-7'] # g++ required for newer libstdc++ 196 | # install: export CXX="clang++-5.0" 197 | # env: CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Debug" CMAKE_CXX_FLAGS="-fsanitize=address" 198 | 199 | # TODO: native_build (4x OS+CXX) 200 | 201 | script: 202 | - mkdir -p build && cd build 203 | - cmake .. -DGENMAP_NATIVE_BUILD=0 -DGENMAP_COMPILE_THREADS=2 ${CMAKE_ARGS} -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS}" 204 | - travis_wait 60 make genmap genmap_algo_test -j2 VERBOSE=1 205 | - travis_wait 90 sleep infinity & ctest . -j2 --output-on-failure 206 | -------------------------------------------------------------------------------- /CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | Changelog 2 | ^^^^^^^^^ 3 | 4 | 1.3.0 (2020-06-17) 5 | """""""""""""""""" 6 | 7 | Features 8 | -------- 9 | 10 | * **Faster and more efficient index creation (libdivsufsort)**, requires about 6n main memory (for fasta files >2GB about 10n main memory). n is the size of the input fasta files. No additional secondary memory is needed (unlike for Skew) 11 | * slightly smaller indices (about 0.625n - 0.75n less space). Old indices are still compatible with GenMap 1.3.0, but indices built with 1.3.0 are not compatible with older versions of GenMap. 12 | 13 | Fixes 14 | ----- 15 | 16 | * indexing will search for fasta files recursively (subfolders were not considered before) 17 | * updated paper information (replaced bioRxiv with OUP Bioinformatics) 18 | 19 | 1.2.0 (2020-02-21) 20 | """""""""""""""""" 21 | 22 | Features 23 | -------- 24 | 25 | * **BREAKING CHANGE!** k-mers are searched on both strands by default. Can be turned off with ``--no-reverse-complement`` 26 | * bedgraph output (``*.bg``) replaces bed output (``*.bed``) (bed output is still supported with ``--bed`` but deprecated and removed from the help string) 27 | * allow user to specify a filename with ``--output`` if only a single fasta file has been indexed (previously only the directory could be specified) 28 | 29 | Fixes 30 | ----- 31 | 32 | * truncate fasta identifiers after first space 33 | * allow indexing fasta files with ``*.fas`` filename ending 34 | * runtime speedup when BED file is provided for computation on a subset of the input (``--selection``) 35 | * reduced progress output on terminal when processing multiple fasta files 36 | 37 | 1.1.0 (2019-11-17) 38 | """""""""""""""""" 39 | 40 | * compute mappability of selected regions using a bed file 41 | * suppress 0 values in BED and WIG files 42 | * change default algorithm for indexing to Skew 43 | 44 | 1.0.2 (2019-09-04) 45 | """""""""""""""""" 46 | 47 | * BED output format fixed (end position was off by one, i.e. closed interval instead of half-closed interval) 48 | 49 | 1.0.1 (2019-06-11) 50 | """""""""""""""""" 51 | 52 | * ``--frequency-small`` would output unreadable ascii characters in ``--txt`` format 53 | * some typo fixes 54 | 55 | 1.0.0 (2019-05-27) 56 | """""""""""""""""" 57 | 58 | * faster computation of mappability for 3 and 4 errors 59 | * included the reference to the paper (preprint) 60 | * minor fixes in documentation and error messages 61 | 62 | 0.9.0 (2019-03-23) 63 | """""""""""""""""" 64 | 65 | * preliminary version of GenMap released 66 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # =========================================================================== 2 | # GenMap 3 | # =========================================================================== 4 | 5 | cmake_minimum_required (VERSION 3.0.0) 6 | string (ASCII 27 Esc) 7 | set (ColourBold "${Esc}[1m") 8 | set (ColourReset "${Esc}[m") 9 | set (ColourRed "${Esc}[31m") 10 | 11 | message ("${ColourBold}Compiler Detection${ColourReset}") # This needs to go before "project ()". 12 | 13 | project (genmap CXX) 14 | 15 | # ---------------------------------------------------------------------------- 16 | # App version 17 | # ---------------------------------------------------------------------------- 18 | 19 | # change this after every release 20 | set (SEQAN_APP_VERSION_MAJOR "1") 21 | set (SEQAN_APP_VERSION_MINOR "3") 22 | set (SEQAN_APP_VERSION_PATCH "0") 23 | # don't change the following 24 | set (SEQAN_APP_VERSION "${SEQAN_APP_VERSION_MAJOR}.${SEQAN_APP_VERSION_MINOR}.${SEQAN_APP_VERSION_PATCH}") 25 | # adapt when necessary 26 | set (MINIMUM_SEQAN_VERSION "2.4.0") 27 | 28 | # ---------------------------------------------------------------------------- 29 | # Compiler detection 30 | # ---------------------------------------------------------------------------- 31 | 32 | if (CMAKE_CXX_COMPILER_ID MATCHES "GNU") 33 | if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9.1) 34 | message (FATAL_ERROR "Your GCC version is too old. Minimum version is GCC-4.9.1!") 35 | return () 36 | endif () 37 | elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang") 38 | if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.6) 39 | message (FATAL_ERROR "Your Clang version is too old. Please upgrade to 3.8.0 or use GCC.") 40 | return () 41 | elseif (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.8) 42 | message (WARNING "Your Clang version is too old, you will not have parallelism! Upgrade to 3.8.0 or newer.") 43 | endif () 44 | elseif (CMAKE_CXX_COMPILER_ID MATCHES "Intel") 45 | if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 17) 46 | message (WARNING "Your Intel Compiler version is too old. Please upgrade to 17.0.0 or newer!") 47 | endif () 48 | else () 49 | message (WARNING "Unknown compiler, you are own your own!") 50 | endif () 51 | 52 | message (STATUS "Compiling with ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}.") 53 | 54 | message (STATUS "The requirements were met.") 55 | 56 | # ---------------------------------------------------------------------------- 57 | # Compiler specifics 58 | # ---------------------------------------------------------------------------- 59 | 60 | if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") 61 | set (SEQAN_CXX_FLAGS "${SEQAN_CXX_FLAGS} -ftemplate-depth-1024") 62 | endif () 63 | 64 | if (CMAKE_CXX_COMPILER_ID MATCHES "GNU") 65 | # parallelize parts of build even for one translation unit 66 | if (NOT DEFINED GENMAP_COMPILE_THREADS) 67 | include (ProcessorCount) 68 | ProcessorCount (GENMAP_COMPILE_THREADS) 69 | endif () 70 | if (GENMAP_COMPILE_THREADS GREATER 1) 71 | set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -flto=${GENMAP_COMPILE_THREADS}") 72 | endif() 73 | 74 | # required, otherwise #pragma clang diagnostics will trigger warnings 75 | set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-pragmas") 76 | else () 77 | # TODO: parallelize for Clang (isn't this done by default by the default clang linker?) 78 | set (dummy_ignore "${GENMAP_COMPILE_THREADS}") # surpress warnings 79 | endif () 80 | 81 | if (NOT CMAKE_CXX_COMPILER_ID MATCHES "Intel") 82 | # -Wextra not met by current SeqAn on intel 83 | set (SEQAN_CXX_FLAGS "${SEQAN_CXX_FLAGS} -Wextra") 84 | endif () 85 | 86 | # ---------------------------------------------------------------------------- 87 | # Dependency detection 88 | # ---------------------------------------------------------------------------- 89 | 90 | message ("\n${ColourBold}Dependency detection${ColourReset}") 91 | 92 | if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/include/seqan/include/seqan/version.h") 93 | set (CMAKE_INCLUDE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/include/seqan/include 94 | ${CMAKE_INCLUDE_PATH}) 95 | set (CMAKE_PREFIX_PATH ${CMAKE_CURRENT_SOURCE_DIR}/include/seqan/util/cmake 96 | ${CMAKE_PREFIX_PATH}) 97 | set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/include/seqan/util/cmake 98 | ${CMAKE_MODULE_PATH}) 99 | message (STATUS "Found a local SeqAn library provided with the GenMap source code.") 100 | message ( " This will be preferred over system global headers.") 101 | endif () 102 | 103 | # Search SeqAn and select dependencies. 104 | find_package (OpenMP QUIET) 105 | find_package (SeqAn QUIET REQUIRED CONFIG) 106 | 107 | # Add include directories. 108 | include_directories (${SEQAN_INCLUDE_DIRS}) 109 | 110 | # Add definitions set by find_package (SeqAn). 111 | add_definitions (${SEQAN_DEFINITIONS}) 112 | 113 | message (STATUS "These dependencies where found:") 114 | message ( " OPENMP ${OPENMP_FOUND} ${OpenMP_CXX_FLAGS}") 115 | message ( " SEQAN ${SEQAN_FOUND} ${SEQAN_VERSION_STRING}") 116 | 117 | # Warn if OpenMP was not found. 118 | if (NOT OPENMP_FOUND) 119 | message (WARNING "WARNING WARNING WARNING\nWARNING: OpenMP not found. GenMap will be built without multi-threading! " 120 | "This is probably not what you want! Use GCC >= 4.9.1, Clang >= 3.8.0 or ICC >= 16.0.2\nWARNING WARNING WARNING") 121 | endif (NOT OPENMP_FOUND) 122 | 123 | if (SEQAN_VERSION_STRING VERSION_LESS "${MINIMUM_SEQAN_VERSION}") 124 | message (FATAL_ERROR "The minimum SeqAn verison required is ${MINIMUM_SEQAN_VERSION}!") 125 | return () 126 | endif () 127 | 128 | # deactivate the version check on broken seqan releases 129 | if (SEQAN_VERSION_STRING VERSION_LESS "2.3.2") 130 | add_definitions (-DSEQAN_DISABLE_VERSION_CHECK="YES") 131 | endif () 132 | 133 | message (STATUS "The requirements were met.") 134 | 135 | # ---------------------------------------------------------------------------- 136 | # Add targets 137 | # ---------------------------------------------------------------------------- 138 | 139 | add_subdirectory (src) 140 | 141 | # ---------------------------------------------------------------------------- 142 | # Add tests 143 | # ---------------------------------------------------------------------------- 144 | 145 | message ("\n${ColourBold}Setting up unit tests${ColourReset}") 146 | enable_testing () 147 | add_subdirectory (tests EXCLUDE_FROM_ALL) 148 | 149 | message (STATUS "Tests added.") 150 | 151 | # ---------------------------------------------------------------------------- 152 | # Add benchmarks 153 | # ---------------------------------------------------------------------------- 154 | 155 | message ("\n${ColourBold}Setting up benchmarks${ColourReset}") 156 | add_subdirectory (benchmarks EXCLUDE_FROM_ALL) 157 | 158 | message (STATUS "Benchmarks added.") 159 | 160 | message ("\n${ColourBold}Finishing up${ColourReset}") 161 | -------------------------------------------------------------------------------- /LICENSE.rst: -------------------------------------------------------------------------------- 1 | GenMap copyright 2 | ================ 3 | :: 4 | 5 | Copyright (c) 2019-2020, Christopher Pockrandt 6 | All rights reserved. 7 | 8 | GenMap is *free software*: you can redistribute it and/or modify 9 | it under the terms of the BSD-License (3-clause). 10 | 11 | GenMap is distributed in the hope that it will be useful, 12 | but **without any warranty**; without even the implied warranty of 13 | **merchantability** or **fitness for a particular purpose**. 14 | 15 | Some of the code are alternatively or additionally 16 | :: 17 | 18 | 19 | These are covered under the terms of the MIT License. See the file 20 | `include/libdivsufsort/LICENSE <./include/libdivsufsort/LICENSE>`__ 21 | for a full text of the license and the rights and obligations implied. 22 | In cases of doubt the terms of both licenses apply. 23 | 24 | submodules 25 | ---------- 26 | 27 | When GenMap is distributed in binary form or when GenMap is distributed 28 | in source form including its submodules the following additional 29 | license terms apply: 30 | 31 | libdivsufsort copyright 32 | ^^^^^^^^^^^^^^^^^^^^^^^ 33 | :: 34 | 35 | Copyright (c) 2003 Yuta Mori All rights reserved. 36 | 37 | The MIT License (MIT) 38 | """"""""""""""""""""" 39 | 40 | Permission is hereby granted, free of charge, to any person obtaining a copy 41 | of this software and associated documentation files (the "Software"), to deal 42 | in the Software without restriction, including without limitation the rights 43 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 44 | copies of the Software, and to permit persons to whom the Software is 45 | furnished to do so, subject to the following conditions: 46 | 47 | The above copyright notice and this permission notice shall be included in all 48 | copies or substantial portions of the Software. 49 | 50 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 51 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 52 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 53 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 54 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 55 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 56 | SOFTWARE. 57 | 58 | 59 | SeqAn copyright 60 | ^^^^^^^^^^^^^^^ 61 | :: 62 | 63 | Copyright (c) 2006-2019, Knut Reinert and Freie Universität Berlin 64 | 65 | SeqAn is published under the terms of the three clause BSD license as can 66 | be found in the file `include/seqan/LICENSE <./include/seqan/LICENSE>`__ 67 | or printed by the parameter ``--copyright``. 68 | 69 | BSD-License (3-clause) 70 | """""""""""""""""""""" 71 | 72 | | Copyright (c) 2016-2019, Knut Reinert, Freie Universität Berlin 73 | | All rights reserved. 74 | 75 | Redistribution and use in source and binary forms, with or without 76 | modification, are permitted provided that the following conditions are met: 77 | 78 | * Redistributions of source code must retain the above copyright 79 | notice, this list of conditions and the following disclaimer. 80 | * Redistributions in binary form must reproduce the above copyright 81 | notice, this list of conditions and the following disclaimer in the 82 | documentation and/or other materials provided with the distribution. 83 | * Neither the name of Knut Reinert or the FU Berlin nor the names of 84 | its contributors may be used to endorse or promote products derived 85 | from this software without specific prior written permission. 86 | 87 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 88 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 89 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 90 | ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 91 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 92 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 93 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 94 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 95 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 96 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 97 | DAMAGE. 98 | -------------------------------------------------------------------------------- /benchmarks/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # =========================================================================== 2 | # GenMap benchmarks 3 | # =========================================================================== 4 | 5 | include (ExternalProject) 6 | ExternalProject_Add (googlebenchmark 7 | PREFIX googlebenchmark 8 | GIT_REPOSITORY "https://github.com/google/benchmark.git" 9 | GIT_TAG "v1.4.1" 10 | CMAKE_ARGS "-DBENCHMARK_ENABLE_TESTING=false;-DCMAKE_BUILD_TYPE=Release;-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR};-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}" 11 | UPDATE_DISCONNECTED yes) 12 | 13 | add_executable (genmap_algo_benchmark bench.cpp) 14 | add_dependencies (genmap_algo_benchmark googlebenchmark) 15 | set_source_files_properties (bench.cpp PROPERTIES COMPILE_FLAGS "-I${CMAKE_CURRENT_BINARY_DIR}/include") 16 | target_link_libraries (genmap_algo_benchmark "-L${CMAKE_CURRENT_BINARY_DIR}/lib -lbenchmark") 17 | target_link_libraries (genmap_algo_benchmark pthread) # required by google benchmark 18 | -------------------------------------------------------------------------------- /benchmarks/bench.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static constexpr bool outputProgress = false; 8 | 9 | // #include "../src/common.hpp" 10 | // #include "../src/algo.hpp" 11 | 12 | using namespace seqan; 13 | 14 | // template 15 | // unsigned GemMapFastFMIndexConfig::SAMPLING = 10; 16 | 17 | void BM_TTEST(benchmark::State& state, uint64_t y) 18 | { 19 | for (auto _ : state) 20 | { 21 | std::vector xx; 22 | xx.resize(10000); 23 | // TODO 24 | } 25 | } 26 | 27 | BENCHMARK_CAPTURE(BM_TTEST, bench_name, 3)->Unit(benchmark::kMillisecond); 28 | 29 | // BENCHMARK_MAIN(); 30 | int main(int argc, char** argv) 31 | { 32 | // Argument parser 33 | // ArgumentParser parser("SearchSchemes - Benchmarking"); 34 | // addDescription(parser, 35 | // "App for creating the benchmark of Optimum Search Schemes from the paper."); 36 | // 37 | // addOption(parser, ArgParseOption("G", "genome", "Path to the indexed genome", ArgParseArgument::INPUT_FILE, "IN")); 38 | // setRequired(parser, "genome"); 39 | // 40 | // addOption(parser, ArgParseOption("R", "reads", "Path to the reads", ArgParseArgument::INPUT_FILE, "IN")); 41 | // setValidValues(parser, "reads", "fa fasta fastq"); 42 | // setRequired(parser, "reads"); 43 | // 44 | // ArgumentParser::ParseResult res = parse(parser, argc, argv); 45 | // if (res != ArgumentParser::PARSE_OK) 46 | // return res == ArgumentParser::PARSE_ERROR; 47 | // 48 | // // Retrieve input parameters 49 | // CharString indexPath, readsPath; 50 | // getOptionValue(indexPath, parser, "genome"); 51 | // getOptionValue(readsPath, parser, "reads"); 52 | // 53 | // open(fm_index, toCString(indexPath), OPEN_RDONLY); 54 | // StringSet ids; 55 | // SeqFileIn seqFileIn(toCString(readsPath)); 56 | // readRecords(ids, reads, seqFileIn); 57 | // 58 | // for (unsigned i = 1; i < length(reads); ++i) 59 | // { 60 | // if (length(reads[i]) != length(reads[0])) 61 | // { 62 | // std::cerr << "ERROR: Not all reads have the same length." << std::endl; 63 | // return 1; 64 | // } 65 | // } 66 | 67 | ::benchmark::Initialize(&argc, argv); 68 | ::benchmark::RunSpecifiedBenchmarks(); 69 | } 70 | -------------------------------------------------------------------------------- /benchmarks/bench.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | #echo "Downloading an indexed version of GRCh38 (5.0 GB) with dna4 alphabet ..." 4 | #wget http://ftp.imp.fu-berlin.de/pub/cpockrandt/grch38-dna4.tar.gz 5 | 6 | #echo "Uncompressing grch38-dna4.tar.gz ..." 7 | #tar -zxvf grch38-dna4.tar.gz 8 | 9 | IFS=',' 10 | 11 | if [ "$#" -ne 4 ]; then 12 | echo "USAGE:" 13 | echo "./bench.sh BIN_TO_GENMAP INDEX_DIRECTORY OUTPUT_DIRECTORY THREADS" 14 | exit 1 15 | fi 16 | 17 | BIN=$1 18 | INDEXDIR=$2 19 | OUTPUTDIR=$3 20 | THREADS=$4 21 | 22 | STATS="" 23 | 24 | runGenMap() { 25 | K=$1; E=$2 26 | echo "($K, $E)-frequency:" 27 | /usr/bin/time -f "%e" -o $OUTPUTDIR/timing $BIN map -I $INDEXDIR -O $OUTPUTDIR -E $E -K $K -fs -r -m -T $THREADS 28 | tput cuu 3 29 | echo -n "($K, $E)-frequency: " 30 | cat $OUTPUTDIR/timing 31 | #echo "----------------------" 32 | #STATS+="($K, $E)-frequency: 0.00s\n" 33 | } 34 | 35 | for i in 5,0 6,0; do # 36,0 24,1 36,2 50,2 75,3; do 36 | set -- $i 37 | runGenMap $1 $2 38 | done 39 | 40 | for i in 101,0 101,1 101,2 101,3 101,4; do 41 | set -- $i 42 | runGenMap $1 $2 43 | done 44 | -------------------------------------------------------------------------------- /include/libdivsufsort/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2003 Yuta Mori All rights reserved. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # ---------------------------------------------------------------------------- 2 | # Build configuration 3 | # ---------------------------------------------------------------------------- 4 | 5 | message ("\n${ColourBold}Build configuration${ColourReset}") 6 | 7 | # ---------------------------------------------------------------------------- 8 | # Make "Release" the default cmake build type 9 | # ---------------------------------------------------------------------------- 10 | 11 | if (NOT CMAKE_BUILD_TYPE) 12 | set (CMAKE_BUILD_TYPE Release CACHE STRING 13 | "Choose the type of build, options are: Debug Release RelWithDebInfo" 14 | FORCE) 15 | endif () 16 | 17 | # ---------------------------------------------------------------------------- 18 | # Warn if cmake build type is not "Release" 19 | # ---------------------------------------------------------------------------- 20 | 21 | if (NOT CMAKE_BUILD_TYPE STREQUAL Release) 22 | message (STATUS "${ColourRed}CMAKE_BUILD_TYPE is not \"Release\", your binaries will be slow.${ColourReset}") 23 | endif () 24 | 25 | message (STATUS "GenMap version is: ${SEQAN_APP_VERSION}") 26 | 27 | # option (LAMBDA_MMAPPED_DB "Use mmapped access to the database." OFF) 28 | option (GENMAP_NATIVE_BUILD "Architecture-specific optimizations, i.e., g++ -march=native." ON) 29 | # option (LAMBDA_MULTIOPT_BUILD "Build and install multiple binaries with different optimisation levels + a dispatcher." OFF) 30 | option (GENMAP_STATIC_BUILD "Include all libraries in the binaries." OFF) 31 | 32 | if (GENMAP_NATIVE_BUILD) 33 | add_definitions (-DGENMAP_NATIVE_BUILD=1) 34 | set (SEQAN_CXX_FLAGS "${SEQAN_CXX_FLAGS} -march=native") 35 | if (CMAKE_CXX_COMPILER_ID MATCHES "Intel") 36 | set (SEQAN_CXX_FLAGS "${SEQAN_CXX_FLAGS} -xHOST -ipo -no-prec-div -fp-model fast=2") 37 | endif (CMAKE_CXX_COMPILER_ID MATCHES "Intel") 38 | endif (GENMAP_NATIVE_BUILD) 39 | 40 | if (GENMAP_STATIC_BUILD) 41 | add_definitions (-DGENMAP_STATIC_BUILD=1) 42 | set (CMAKE_FIND_LIBRARY_SUFFIXES ".a") 43 | # apple does not support fully static builds, but at least libgcc and libstdc++ 44 | if (APPLE) 45 | set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-libstdc++") 46 | message (WARNING "WARNING: Builds on Mac are never fully static.") 47 | else (APPLE) 48 | set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-libstdc++") 49 | endif (APPLE) 50 | # on linux cmake adds -rdynamic automatically which clang can't handle in static builds 51 | if (CMAKE_SYSTEM_NAME MATCHES "Linux") 52 | set (CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") 53 | endif (CMAKE_SYSTEM_NAME MATCHES "Linux") 54 | endif (GENMAP_STATIC_BUILD) 55 | 56 | # if (LAMBDA_MMAPPED_DB) 57 | # add_definitions (-DLAMBDA_MMAPPED_DB=1) 58 | # endif (LAMBDA_MMAPPED_DB) 59 | 60 | message (STATUS "The following options are selected for the build:") 61 | message ( " GENMAP_NATIVE_BUILD ${GENMAP_NATIVE_BUILD}") 62 | message ( " GENMAP_STATIC_BUILD ${GENMAP_STATIC_BUILD}") 63 | message (STATUS "Run 'cmake -LH' to get a comment on each option.") 64 | message (STATUS "Remove CMakeCache.txt and re-run cmake with -DOPTIONNAME=ON|OFF to change an option.") 65 | 66 | # strip binaries to make them smaller 67 | if (CMAKE_CXX_COMPILER_ID MATCHES "GNU") 68 | set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s") 69 | endif () 70 | 71 | # TODO: verify whether this works for Clang! 72 | if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") 73 | set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wl,-s") 74 | endif () 75 | 76 | # ---------------------------------------------------------------------------- 77 | # Build Setup 78 | # ---------------------------------------------------------------------------- 79 | 80 | # Enable global exception handler for all seqan apps. 81 | set (SEQAN_DEFINITIONS ${SEQAN_DEFINITIONS} -DSEQAN_GLOBAL_EXCEPTION_HANDLER=1) 82 | 83 | # Add definitions set by the build system. 84 | add_definitions (-DSEQAN_APP_VERSION="${SEQAN_APP_VERSION}") 85 | add_definitions (-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}") 86 | 87 | # Set the right output directory 88 | set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) 89 | 90 | # Add CXX flags found by find_package (SeqAn). 91 | set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SEQAN_CXX_FLAGS} -Wall -pedantic -Wno-deprecated-copy") # TODO: --coverage nur für debug auf travis! 92 | 93 | # Update the list of file names below if you add source files to your application. 94 | set (GENMAP_SOURCE_FILES genmap.cpp 95 | common.hpp 96 | indexing.hpp 97 | mappability.hpp 98 | algo.hpp 99 | output.hpp) 100 | 101 | add_executable (genmap ${GENMAP_SOURCE_FILES}) 102 | target_link_libraries (genmap ${SEQAN_LIBRARIES}) 103 | install(TARGETS genmap DESTINATION bin) 104 | 105 | # if (LAMBDA_MULTIOPT_BUILD) 106 | # add_executable (lambda2-sse4 ${LAMBDA_SOURCE_FILES}) 107 | # target_link_libraries (lambda2-sse4 ${SEQAN_LIBRARIES}) 108 | # set_target_properties (lambda2-sse4 PROPERTIES COMPILE_FLAGS "-mmmx -msse -msse2 -msse3 -mssse3 -msse4 -mpopcnt") 109 | # endif () 110 | 111 | # ---------------------------------------------------------------------------- 112 | # Man-pages 113 | # ---------------------------------------------------------------------------- 114 | 115 | # Umbrella man-page 116 | # add_custom_command (OUTPUT lambda2.1 117 | # COMMAND lambda2 --export-help=man > lambda2.1 118 | # DEPENDS lambda2) 119 | # # searchn subcommand 120 | # add_custom_command (OUTPUT lambda2-searchn.1 121 | # COMMAND lambda2 searchn --export-help=man > lambda2-searchn.1 122 | # DEPENDS lambda2) 123 | # # searchp subcommand 124 | # add_custom_command (OUTPUT lambda2-searchp.1 125 | # COMMAND lambda2 searchp --export-help=man > lambda2-searchp.1 126 | # DEPENDS lambda2) 127 | # # mkindexn subcommand 128 | # add_custom_command (OUTPUT lambda2-mkindexn.1 129 | # COMMAND lambda2 mkindexn --export-help=man > lambda2-mkindexn.1 130 | # DEPENDS lambda2) 131 | # # mkindexp subcommand 132 | # add_custom_command (OUTPUT lambda2-mkindexp.1 133 | # COMMAND lambda2 mkindexp --export-help=man > lambda2-mkindexp.1 134 | # DEPENDS lambda2) 135 | # 136 | # add_custom_target (manual 137 | # ALL 138 | # DEPENDS lambda2.1 lambda2-searchn.1 lambda2-searchp.1 lambda2-mkindexn.1 lambda2-mkindexp.1) 139 | 140 | # ---------------------------------------------------------------------------- 141 | # Installation 142 | # ---------------------------------------------------------------------------- 143 | 144 | # # Adapt to system paths 145 | # include (GNUInstallDirs) 146 | # 147 | # # if (LAMBDA_MULTIOPT_BUILD) 148 | # # # Install lambda binaries into LIBEXECDIR 149 | # # install (TARGETS lambda2 lambda2-sse4 150 | # # DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}) 151 | # # 152 | # # # Install dispatcher script into BINDIR 153 | # # configure_file(../bin/lambda2.in 154 | # # ${CMAKE_CURRENT_BINARY_DIR}/lambda2-dispatch 155 | # # @ONLY) 156 | # # install (FILES ${CMAKE_CURRENT_BINARY_DIR}/lambda2-dispatch 157 | # # DESTINATION ${CMAKE_INSTALL_BINDIR} 158 | # # RENAME lambda2 159 | # # PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) 160 | # # elseif () 161 | # # Install lambda into BINDIR, usually ${PREFIX}/bin 162 | # install (TARGETS genmap 163 | # DESTINATION ${CMAKE_INSTALL_BINDIR}) 164 | # # endif () 165 | # 166 | # # Install non-binary files for the package to DOCDIR, usually ${PREFIX}/share/doc/lambda2 167 | # install (FILES ../LICENSE.rst 168 | # ../LICENSE-BSD.rst 169 | # ../LICENSE-AGPL3.rst 170 | # ../README.rst 171 | # DESTINATION ${CMAKE_INSTALL_DOCDIR}) 172 | # 173 | # # Man pages into MANDIR, usually ${PREFIX}/share/man/man1 (or without share) 174 | # # install (FILES ${CMAKE_CURRENT_BINARY_DIR}/lambda2.1 175 | # # ${CMAKE_CURRENT_BINARY_DIR}/lambda2-searchn.1 176 | # # ${CMAKE_CURRENT_BINARY_DIR}/lambda2-searchp.1 177 | # # ${CMAKE_CURRENT_BINARY_DIR}/lambda2-mkindexn.1 178 | # # ${CMAKE_CURRENT_BINARY_DIR}/lambda2-mkindexp.1 179 | # # DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) 180 | 181 | # ---------------------------------------------------------------------------- 182 | # CPack Install 183 | # ---------------------------------------------------------------------------- 184 | 185 | # Information 186 | # set (CPACK_PACKAGE_NAME "Genmap") 187 | # set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "GenMap -- Fast and Exact Computation of Genome Mappability") 188 | # set (CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../README.rst") 189 | # set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/../LICENSE.rst") 190 | # set (CPACK_PACKAGE_VENDOR "Christopher Pockrandt ") 191 | # set (CPACK_PACKAGE_CONTACT "${CPACK_PACKAGE_VENDOR}") 192 | # set (CPACK_PACKAGE_VERSION_MAJOR "${SEQAN_APP_VERSION_MAJOR}") 193 | # set (CPACK_PACKAGE_VERSION_MINOR "${SEQAN_APP_VERSION_MINOR}") 194 | # set (CPACK_PACKAGE_VERSION_PATCH "${SEQAN_APP_VERSION_PATCH}") 195 | # set (CPACK_PACKAGE_VERSION "${SEQAN_APP_VERSION}") 196 | # set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}") 197 | # 198 | # # Package format(s) 199 | # if (CMAKE_SYSTEM_NAME MATCHES "Windows") 200 | # set(CPACK_GENERATOR "ZIP;NSIS") 201 | # elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin") 202 | # set(CPACK_GENERATOR "ZIP;DragNDrop") 203 | # elseif (CMAKE_VERSION VERSION_LESS "3.1") # TXZ support since 3.1 204 | # set(CPACK_GENERATOR "TBZ2") 205 | # else() 206 | # set(CPACK_GENERATOR "TXZ") 207 | # endif () 208 | # 209 | # if (CMAKE_SYSTEM_NAME MATCHES "Linux") 210 | # set(CPACK_GENERATOR "${CPACK_GENERATOR};DEB;RPM") 211 | # endif () 212 | # 213 | # # Package architecture 214 | # if (CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64") 215 | # set(CMAKE_SYSTEM_PROCESSOR "x86_64") 216 | # set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64") 217 | # endif () 218 | # if (CMAKE_CXX_FLAGS MATCHES "avx2") 219 | # set (CMAKE_SYSTEM_PROCESSOR "${CMAKE_SYSTEM_PROCESSOR}_avx2") 220 | # elseif (CMAKE_CXX_FLAGS MATCHES "sse4") 221 | # set (CMAKE_SYSTEM_PROCESSOR "${CMAKE_SYSTEM_PROCESSOR}_sse4") 222 | # endif() 223 | # 224 | # # Include architecture in package name 225 | # if (NOT DEFINED CPACK_SYSTEM_NAME) 226 | # set(CPACK_SYSTEM_NAME "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}") 227 | # endif (NOT DEFINED CPACK_SYSTEM_NAME) 228 | # 229 | # include (CPack) 230 | -------------------------------------------------------------------------------- /src/common.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #include 7 | 8 | using namespace seqan; 9 | 10 | inline auto retrieveDirectoryInformationLine(CharString const & info) 11 | { 12 | std::string const row = toCString(info); 13 | auto const firstSeparator = row.find(';', 0); 14 | auto const secondSeparator = row.find(';', firstSeparator + 1); 15 | std::string const fastaFile = row.substr(0, firstSeparator); 16 | uint64_t const length = std::stoi(row.substr(firstSeparator + 1, secondSeparator - firstSeparator - 1)); 17 | std::string const chromName = row.substr(secondSeparator + 1); 18 | return std::make_tuple(fastaFile, length, chromName); 19 | } 20 | 21 | template 22 | inline void myPosLocalize(TResult & result, TPosition const & pos, TLimits const & limits) { 23 | typedef typename Iterator::Type TIter; 24 | TIter _begin = begin(limits, Standard()); 25 | TIter _upper = std::upper_bound(_begin, end(limits, Standard()), pos) - 1; 26 | result.i1 = difference(_begin, _upper); 27 | result.i2 = pos - *_upper; 28 | } 29 | 30 | inline double get_wall_time() 31 | { 32 | struct timeval time; 33 | if (gettimeofday(&time, NULL)) 34 | return 0; 35 | return static_cast(time.tv_sec) + static_cast(time.tv_usec) * .000001; 36 | } 37 | 38 | template 39 | struct GemMapFastFMIndexConfig 40 | { 41 | typedef TLengthSum LengthSum; 42 | typedef Levels, LEVELS, WORDS_PER_BLOCK> > Bwt; 43 | typedef Levels, LEVELS, WORDS_PER_BLOCK> > Sentinels; 44 | 45 | static unsigned SAMPLING; 46 | }; 47 | 48 | template 49 | using TGemMapFastFMIndexConfig = GemMapFastFMIndexConfig; 50 | 51 | template 52 | using TBiIndexConfig = BidirectionalIndex >; 53 | 54 | namespace seqan { 55 | 56 | template 57 | struct SizeSpec_ {}; 58 | 59 | template 60 | struct SAValue > > > > 61 | { 62 | typedef Pair Type; 63 | }; 64 | 65 | } // namespace seqan 66 | 67 | struct SearchParams 68 | { 69 | unsigned length; 70 | unsigned overlap; 71 | unsigned threads; 72 | bool revCompl; 73 | bool excludePseudo; 74 | }; 75 | 76 | std::string mytime() 77 | { 78 | auto r = time(nullptr); 79 | auto c = ctime(&r); 80 | std::string buf(c); 81 | buf.insert(0, "["); 82 | buf.append("] "); 83 | buf.erase(remove(buf.begin(), buf.end(), '\n'), buf.end()); 84 | return buf; 85 | } 86 | 87 | template 88 | inline void printProgress(uint64_t &, uint64_t const, uint64_t const, uint64_t const, uint64_t const); 89 | 90 | template <> 91 | inline void printProgress(uint64_t &, uint64_t const, uint64_t const, uint64_t const, uint64_t const) 92 | { } 93 | 94 | template <> 95 | inline void printProgress(uint64_t & progress_count, uint64_t const progress_step, uint64_t const progress_max, 96 | uint64_t const currentFileNo, uint64_t const totalFileNo) 97 | { 98 | #pragma omp atomic 99 | ++progress_count; 100 | 101 | if (omp_get_thread_num() == 0 && (progress_count & progress_step) == 0) 102 | { 103 | float progress = static_cast(progress_count)/progress_max; 104 | 105 | if (totalFileNo == 1) 106 | { 107 | std::cout << "\rProgress: " << (truncf(progress*10000)/100) << "%\x1b[K" << std::flush; // \e[K - clr_eol (remove anything after the cursor) 108 | } 109 | else 110 | { 111 | std::cout << "\r" // go up one line 112 | << "File " << currentFileNo << " / " << totalFileNo << ". Progress: " << (truncf(progress*10000)/100) << "%\x1b[K" << std::flush; 113 | } 114 | } 115 | } 116 | 117 | template 118 | inline void initProgress(uint64_t &, uint64_t &, uint64_t &, uint64_t const, uint64_t const); 119 | 120 | template <> 121 | inline void initProgress(uint64_t &, uint64_t &, uint64_t &, uint64_t const, uint64_t const) 122 | { } 123 | 124 | template <> 125 | inline void initProgress(uint64_t & progressCount, uint64_t & progressStep, uint64_t & progressMax, 126 | uint64_t const stepSize, uint64_t const numberOfKmers) 127 | { 128 | progressCount = 0; 129 | progressMax = (numberOfKmers + stepSize - 1) / stepSize; // = ceil(numberOfKmers / stepSize), i.e. loop iterations 130 | progressStep = 511; // Print every 512 loop iterators. 131 | } 132 | -------------------------------------------------------------------------------- /src/genmap.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | #include "genmap_helper.hpp" 6 | #include "indexing.hpp" 7 | #include "mappability.hpp" 8 | 9 | template 10 | unsigned GemMapFastFMIndexConfig::SAMPLING = 10; 11 | 12 | using namespace seqan; 13 | 14 | ArgumentParser::ParseResult parseCommandLineMain(int const argc, char const ** argv); 15 | 16 | int main(int const argc, char const ** argv) 17 | { 18 | if (std::string(CMAKE_BUILD_TYPE) != "Release") 19 | { 20 | std::cerr << "WARNING: This binary was not built in Release mode" 21 | " and is expected to be much slower.\n"; 22 | } 23 | 24 | // TODO: warning if no SSE4 and popcount support is used, that is might crash. use newer CPU 25 | 26 | // --version-check expects a parameter, the others (--copyright, --version) don't. 27 | int until = argc; 28 | bool skipNext = false; 29 | for (int i = 1; i < argc; ++i) 30 | { 31 | // version check expects a parameter 32 | if (std::string(argv[i]) == "--version-check") 33 | skipNext = true; 34 | 35 | if (argv[i][0] != '-') 36 | { 37 | if (skipNext) 38 | { 39 | skipNext = false; 40 | } else 41 | { 42 | until = i + 1; 43 | break; 44 | } 45 | } 46 | } 47 | 48 | ArgumentParser::ParseResult res = parseCommandLineMain(until, argv); 49 | 50 | if (res == ArgumentParser::PARSE_ERROR) 51 | return ArgumentParser::PARSE_ERROR; 52 | else if (res != ArgumentParser::PARSE_OK) 53 | return 0; 54 | 55 | --until; // undo the "+ 1" above 56 | 57 | if (std::string(argv[until]) == "map") 58 | { 59 | return mappabilityMain(argc - until, argv + until); 60 | } 61 | else if (std::string(argv[until]) == "index") 62 | { 63 | return indexMain(argc - until, argv + until); 64 | } 65 | else 66 | { 67 | // should not be reached 68 | std::cerr << "WRONG ARGUMENTS!\n"; 69 | return -1; 70 | } 71 | 72 | return 0; 73 | } 74 | 75 | ArgumentParser::ParseResult parseCommandLineMain(int const argc, char const ** argv) 76 | { 77 | ArgumentParser parser("GenMap"); 78 | 79 | setShortDescription(parser, "Fast and Exact Computation of Genome Mappability"); 80 | 81 | addUsageLine(parser, "[\\fIOPTIONS\\fP] COMMAND [\\fICOMMAND-OPTIONS\\fP]"); 82 | sharedSetup(parser); 83 | 84 | addArgument(parser, ArgParseArgument(ArgParseArgument::STRING, "COMMAND")); 85 | setHelpText(parser, 0, "The sub-program to execute. See below."); 86 | setValidValues(parser, 0, "index map"); 87 | 88 | addTextSection(parser, "Available commands"); 89 | addText(parser, "\\fBindex \\fP– Creates an index for mappability computation."); 90 | addText(parser, "\\fBmap \\fP– Computes the mappability (requires a pre-built index)."); 91 | addText(parser, "To view the help page for a specific command, simply run 'genmap command --help'."); 92 | 93 | return parse(parser, argc, argv); 94 | } 95 | -------------------------------------------------------------------------------- /src/genmap_helper.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include 6 | #include 7 | 8 | using namespace seqan; 9 | 10 | void sharedSetup(ArgumentParser & parser) 11 | { 12 | // Set short description, version, and date. 13 | std::string versionString = SEQAN_APP_VERSION; 14 | setVersion(parser, versionString); 15 | setDate(parser, __DATE__); 16 | setShortCopyright(parser, "2019-2020 Christopher Pockrandt, released under the 3-clause-BSD; " 17 | "2016-2019 Knut Reinert and Freie Universität Berlin, released under the 3-clause-BSD"); 18 | 19 | setCitation(parser, "Pockrandt et al (2020). GenMap: Ultra-fast Computation of Genome Mappability.\n" 20 | "doi: https://doi.org/10.1093/bioinformatics/btaa222"); 21 | 22 | setLongCopyright(parser, 23 | " Copyright (c) 2019-2020, Christopher Pockrandt\n" 24 | " All rights reserved.\n" 25 | "\n" 26 | " This program is free software: you can redistribute it and/or modify\n" 27 | " it under the terms of the BSD-License (3-clause).\n" 28 | "\n" 29 | " GenMap is distributed in the hope that it will be useful,\n" 30 | " but WITHOUT ANY WARRANTY; without even the implied warranty of\n" 31 | " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" 32 | "\n" 33 | " You should have received a copy of the 3-clause BSD-License along with this\n" 34 | " program. If not, see .\n" 35 | "\n" 36 | " libdivsufsort: Copyright (c) 2003 Yuta Mori All rights reserved.\n" 37 | " SeqAn: Copyright (c) 2016-2019 Knut Reinert and Freie Universität Berlin\n" 38 | " All rights reserved.\n" 39 | "\n" 40 | " Redistribution and use in source and binary forms, with or without\n" 41 | " modification, are permitted provided that the following conditions are met:\n" 42 | "\n" 43 | " * Redistributions of source code must retain the above copyright\n" 44 | " notice, this list of conditions and the following disclaimer.\n" 45 | " * Redistributions in binary form must reproduce the above copyright\n" 46 | " notice, this list of conditions and the following disclaimer in the\n" 47 | " documentation and/or other materials provided with the distribution.\n" 48 | " * Neither the name of Knut Reinert or the FU Berlin nor the names of\n" 49 | " its contributors may be used to endorse or promote products derived\n" 50 | " from this software without specific prior written permission.\n" 51 | "\n" 52 | " THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n" 53 | " AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n" 54 | " IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n" 55 | " ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE\n" 56 | " FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n" 57 | " DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n" 58 | " SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n" 59 | " CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n" 60 | " LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n" 61 | " OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\n" 62 | " DAMAGE.\n"); 63 | 64 | addDescription(parser, "GenMap is a tool for fast and exact computation of genome mappability" 65 | " and can also be used for multiple genomes, e.g., to search for marker sequences."); 66 | 67 | addDescription(parser, "Detailed information is available in the wiki: " 68 | ""); 69 | } 70 | 71 | template 72 | inline bool open(Index > > & index, const char * fileName, int openMode) 73 | { 74 | String name; 75 | 76 | // fwd index 77 | name = fileName; append(name, ".txt"); 78 | if (!open(getFibre(index.fwd, FibreText()), toCString(name), openMode)) return false; 79 | 80 | name = fileName; append(name, ".sa"); 81 | if (!open(getFibre(index.fwd, FibreSA()), toCString(name), openMode)) return false; 82 | 83 | name = fileName; append(name, ".lf"); 84 | if (!open(getFibre(index.fwd, FibreLF()), toCString(name), openMode)) return false; 85 | 86 | setFibre(getFibre(index.fwd, FibreSA()), getFibre(index.fwd, FibreLF()), FibreLF()); 87 | 88 | // rev index (only requires the BWT) 89 | name = fileName; append(name, ".rev.lf"); 90 | if (!open(getFibre(index.rev, FibreLF()), toCString(name), openMode)) return false; 91 | 92 | name = fileName; append(name, ".sa.len"); 93 | if (!open(index.rev.sa.sparseString._length, toCString(name), openMode)) return false; 94 | 95 | setFibre(getFibre(index.rev, FibreSA()), getFibre(index.rev, FibreLF()), FibreLF()); 96 | 97 | return true; 98 | } 99 | 100 | template 101 | inline bool saveFwd(Index > const & index, const char * fileName, int openMode = OPEN_RDWR | OPEN_CREATE | OPEN_APPEND) 102 | { 103 | String name; 104 | 105 | name = fileName; append(name, ".txt"); 106 | if (!save(getFibre(index, FibreText()), toCString(name), openMode)) return false; 107 | 108 | name = fileName; append(name, ".sa"); 109 | if (!save(getFibre(index, FibreSA()), toCString(name), openMode)) return false; 110 | 111 | name = fileName; append(name, ".lf"); 112 | if (!save(getFibre(index, FibreLF()), toCString(name), openMode)) return false; 113 | 114 | return true; 115 | } 116 | 117 | template 118 | inline bool saveRev(Index > const & index, const char * fileName, int openMode = OPEN_RDWR | OPEN_CREATE | OPEN_APPEND) 119 | { 120 | String name; 121 | 122 | // rev index (only requires the BWT) 123 | name = fileName; append(name, ".lf"); 124 | if (!save(getFibre(index, FibreLF()), toCString(name), openMode)) return false; 125 | 126 | return true; 127 | } 128 | -------------------------------------------------------------------------------- /tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # =========================================================================== 2 | # GenMap tests 3 | # =========================================================================== 4 | 5 | include (ExternalProject) 6 | ExternalProject_Add (googletest 7 | PREFIX "${CMAKE_CURRENT_BINARY_DIR}/googletest" 8 | GIT_REPOSITORY "https://github.com/google/googletest.git" 9 | INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}" 10 | CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}" 11 | GIT_TAG release-1.10.0 12 | UPDATE_DISCONNECTED YES) 13 | 14 | set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") # TODO: --coverage 15 | add_executable (genmap_algo_test tests.cpp) 16 | add_dependencies (genmap_algo_test googletest) 17 | 18 | include_directories (${CMAKE_CURRENT_BINARY_DIR}/include) 19 | target_link_libraries (genmap_algo_test ${SEQAN_LIBRARIES}) 20 | target_link_libraries (genmap_algo_test ${CMAKE_CURRENT_BINARY_DIR}/lib/libgtest.a) 21 | target_link_libraries (genmap_algo_test ${CMAKE_CURRENT_BINARY_DIR}/lib/libgtest_main.a) 22 | target_link_libraries (genmap_algo_test pthread) 23 | 24 | add_test(NAME algo_test COMMAND genmap_algo_test) 25 | 26 | # TODO: add dependencies 27 | function (add_test_suite TEST_NAME_PREFIX TEST_CASE_FOLDER INDEX_FLAGS MAP_FLAGS) 28 | #message("${CMAKE_CURRENT_SOURCE_DIR}/tests.sh ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${TEST_CASE_FOLDER} ${INDEX_FLAGS} ${MAP_FLAGS} -b -fl bed_freq16") 29 | add_test (NAME "${TEST_NAME_PREFIX}_raw_map" 30 | COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tests.sh "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${TEST_CASE_FOLDER}" "${INDEX_FLAGS}" "${MAP_FLAGS} -r" "raw_map") 31 | add_test (NAME "${TEST_NAME_PREFIX}_raw_freq8" 32 | COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tests.sh "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${TEST_CASE_FOLDER}" "${INDEX_FLAGS}" "${MAP_FLAGS} -r -fs" "raw_freq8") 33 | add_test (NAME "${TEST_NAME_PREFIX}_raw_freq16" 34 | COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tests.sh "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${TEST_CASE_FOLDER}" "${INDEX_FLAGS}" "${MAP_FLAGS} -r -fl" "raw_freq16") 35 | add_test (NAME "${TEST_NAME_PREFIX}_txt_map" 36 | COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tests.sh "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${TEST_CASE_FOLDER}" "${INDEX_FLAGS}" "${MAP_FLAGS} -t" "txt_map") 37 | add_test (NAME "${TEST_NAME_PREFIX}_txt_freq16" 38 | COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tests.sh "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${TEST_CASE_FOLDER}" "${INDEX_FLAGS}" "${MAP_FLAGS} -t -fl" "txt_freq16") 39 | add_test (NAME "${TEST_NAME_PREFIX}_wig_map" 40 | COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tests.sh "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${TEST_CASE_FOLDER}" "${INDEX_FLAGS}" "${MAP_FLAGS} -w" "wig_map") 41 | add_test (NAME "${TEST_NAME_PREFIX}_wig_freq16" 42 | COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tests.sh "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${TEST_CASE_FOLDER}" "${INDEX_FLAGS}" "${MAP_FLAGS} -w -fl" "wig_freq16") 43 | add_test (NAME "${TEST_NAME_PREFIX}_bed_map" 44 | COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tests.sh "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${TEST_CASE_FOLDER}" "${INDEX_FLAGS}" "${MAP_FLAGS} -bg" "bed_map") 45 | add_test (NAME "${TEST_NAME_PREFIX}_bed_freq16" 46 | COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tests.sh "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${TEST_CASE_FOLDER}" "${INDEX_FLAGS}" "${MAP_FLAGS} -bg -fl" "bed_freq16") 47 | add_test (NAME "${TEST_NAME_PREFIX}_csv" 48 | COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tests.sh "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${TEST_CASE_FOLDER}" "${INDEX_FLAGS}" "${MAP_FLAGS} -d" "csv") 49 | 50 | if (EXISTS "${CMAKE_SOURCE_DIR}/tests/test_cases/case_${TEST_CASE_FOLDER}/txt_freq8") 51 | add_test (NAME "${TEST_NAME_PREFIX}_txt_freq8" 52 | COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tests.sh "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${TEST_CASE_FOLDER}" "${INDEX_FLAGS}" "${MAP_FLAGS} -t -fs" "txt_freq8") 53 | endif () 54 | endfunction (add_test_suite) 55 | 56 | add_test_suite ("single_fasta_single_sequence" "1a" "-F" "-E 0 -K 3 -nc") 57 | add_test_suite ("single_fasta_single_sequence_rc" "1b" "-F" "-E 0 -K 3") 58 | add_test_suite ("single_fasta_single_sequence_dna5" "1c" "-F" "-E 0 -K 3 -nc") 59 | add_test_suite ("single_fasta_single_sequence_dna5_rc" "1d" "-F" "-E 0 -K 3") 60 | add_test_suite ("single_fasta_single_sequence_dna5_error" "1e" "-F" "-E 1 -K 3 -nc") 61 | add_test_suite ("single_fasta_single_sequence_dna5_error_rc" "1f" "-F" "-E 1 -K 3") 62 | add_test_suite ("single_fasta_single_sequence_dna5_error_rc_selection" "1g" "-F" "-E 1 -K 3") 63 | add_test_suite ("single_fasta_multi_sequence" "2a" "-F" "-E 0 -K 4 -nc") 64 | add_test_suite ("single_fasta_multi_sequence_rc" "2b" "-F" "-E 0 -K 4") 65 | add_test_suite ("single_fasta_multi_sequence_hard_raw" "2c" "-F" "-E 0 -K 4 -nc") 66 | add_test_suite ("single_fasta_multi_sequence_hard_raw_rc" "2d" "-F" "-E 0 -K 4") 67 | add_test_suite ("single_fasta_multi_sequence_hard_raw_rc_selection" "2e" "-F" "-E 0 -K 4") 68 | add_test_suite ("multi_fasta_multi_sequence" "3a" "-FD" "-E 0 -K 4 -nc") 69 | add_test_suite ("multi_fasta_multi_sequence_rc" "3b" "-FD" "-E 0 -K 4") 70 | add_test_suite ("multi_fasta_multi_sequence_exclude_pseudo" "3c" "-FD" "-E 0 -K 4 -ep -nc") 71 | add_test_suite ("multi_fasta_multi_sequence_exclude_pseudo_rc" "3d" "-FD" "-E 0 -K 4 -ep") 72 | add_test_suite ("multi_fasta_multi_sequence_exclude_pseudo_rc_selection" "3e" "-FD" "-E 0 -K 4 -ep") 73 | add_test_suite ("multi_fasta_multi_sequence_exclude_pseudo_rc_bigger_selection" "3f" "-FD" "-E 0 -K 4 -ep") 74 | -------------------------------------------------------------------------------- /tests/bowtie-test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -xe 2 | 3 | ### NOTE: make sure that bowtie (v1) and genmap are up-to-date and installed in PATH. 4 | 5 | # download an ecoli reference and unzip 6 | curl -o - ftp://ftp.ensemblgenomes.org/pub/bacteria/release-46/fasta/bacteria_0_collection/escherichia_coli_str_k_12_substr_mg1655/dna/Escherichia_coli_str_k_12_substr_mg1655.ASM584v2.dna.toplevel.fa.gz | gunzip > ecoli.fa 7 | # create a bowtie1 index 8 | bowtie-build ecoli.fa ecoli.bowtie1 9 | # create a fasta file containing a k-mer for every position in the genomic (ordered) 10 | awk '!/^>/ { seq = seq $0 } END { for (i = 1; i <= length(seq) - 20 + 1; ++i) { print ">" i; print substr(seq, i, 20) } }' ecoli.fa > ecoli.kmers.fa 11 | # build index for genmap 12 | genmap index -F ecoli.fa -I ecoli.gm.index 13 | # use genmap to compute mappability 14 | genmap map -I ecoli.gm.index -O . -K 20 -E 1 -fl -bg 15 | # search kmers with bowtie1 (in its all-mapping mode) 16 | bowtie -f -n 1 -l 20 -a -S -p 24 --sam-nohead ecoli.bowtie1 ecoli.kmers.fa > ecoli.sam 17 | # sort sam and convert to bed file 18 | cut -f1 ecoli.sam | sort -k1,1 -n | uniq -c | awk -v OFS='\t' 'BEGIN{ startPos=1 } { if (lastPos && $1 != lastOccCount) { print "Chromosome", (startPos - 1), ($2 - 1), lastOccCount; startPos=$2 } lastOccCount=$1; lastPos=$2 } END { print "Chromosome", (startPos - 1), lastPos, lastOccCount }' > ecoli.bowtie.bedgraph 19 | # compare both mappability files 20 | diff -s ecoli.bowtie.bedgraph ecoli.genmap.bedgraph 21 | 22 | rm -r ecoli.bowtie.bedgraph ecoli.genmap.bedgraph ecoli.bowtie1* ecoli.fa ecoli.gm.index ecoli.sam ecoli.kmers.fa 23 | -------------------------------------------------------------------------------- /tests/test_cases/README.rst: -------------------------------------------------------------------------------- 1 | GenMap - Fast and Exact Computation of Genome Mappability 2 | --------------------------------------------------------- 3 | 4 | Details on test cases 5 | ^^^^^^^^^^^^^^^^^^^^^ 6 | 7 | There are a few hand-written test cases to check the output formats of GenMap and possible edge cases. If not stated otherwise, the alphabet is Dna4 (A, C, G, T). 8 | 9 | Single fasta file with a single sequence (i.e., only one chromosome) 10 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 11 | 12 | case 1a 13 | 3-mers with 0 errors without the reverse complement 14 | 15 | case 1b 16 | 3-mers with 0 errors with the reverse complement 17 | 18 | case 1c 19 | 3-mers with 0 errors without the reverse complement. **Dna5** alphabet (including Ns). 20 | 21 | case 1d 22 | 3-mers with 0 errors with the reverse complement. **Dna5** alphabet (including Ns). 23 | 24 | case 1e 25 | 3-mers with 1 error without the reverse complement. **Dna5** alphabet (including Ns). 26 | 27 | case 1f 28 | 3-mers with 1 error with the reverse complement. **Dna5** alphabet (including Ns). 29 | 30 | case 1g 31 | 3-mers with 1 error with the reverse complement. **Dna5** alphabet (including Ns). Computing a subset defined in a bed file. 32 | 33 | Single fasta file with multiple sequences 34 | """"""""""""""""""""""""""""""""""""""""" 35 | 36 | case 2a 37 | 4-mers with 0 errors without the reverse complement. k-mers spanning two sequences occur within the sequence itself [1]_. 38 | 39 | case 2b 40 | case 2a with reverse complement 41 | 42 | case 2c 43 | 4-mers with 0 errors without the reverse complement. Contains sequences that are shorter or equal to k. The last sequence is also shorter than k. k-mers spanning two sequences occur within some sequence, as well as in some sequences reverse complement [1]_. 44 | 45 | case 2d 46 | case 2c with reverse complement 47 | 48 | case 2e 49 | case 2d but only computing a subset defined in a bed file. 50 | 51 | Multiple fasta files in directory with single and multiple sequences 52 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 53 | 54 | case 3a 55 | 4-mers with 0 errors without reverse complement. Multiple fasta files. Some only have one sequence (chromosome), some have multiple. There are k-mers that 56 | - occur once only in a single sequence in only one fasta file (TTTT) 57 | - occur multiple times only in a single sequence in only one fasta file (ACGT) 58 | - occur multiple times in different sequences of only one fasta file (CGTA) 59 | - occur multiple times in different sequences of multiple fasta files (at most one hit per fasta file) (AGGA) 60 | - occur multiple times in different sequences of multiple fasta files (multiple hits per fasta file) (ACCA, AAGG) 61 | 62 | case 3b 63 | case 3a with reverse complement 64 | 65 | case 3c 66 | case 3a with ``--exclude-pseudo`` 67 | 68 | case 3d 69 | case 3c with reverse complement 70 | 71 | case 3e 72 | case 3d but only computing a subset defined in a bed file. 73 | 74 | case 3f 75 | case 3e but with a larger subset (i.e., uses additional optimizations). 76 | 77 | Single fasta file in directory with multiple sequences 78 | """""""""""""""""""""""""""""""""""""""""""""""""""""" 79 | 80 | Coming soon (including and exluding ``--exclude-pseudo``). 81 | 82 | .. [1] This is important due to the design of the algorithm. All sequences in a fasta file are concatenated and each k-mer in the concatenated string is searched. False positives are later filtered out, i.e., windows that spanned multiple sequences. 83 | -------------------------------------------------------------------------------- /tests/test_cases/case_1a/bed_freq16/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 2 2 2 | seq0 2 4 1 3 | seq0 4 6 5 4 | seq0 6 7 2 5 | seq0 7 12 1 6 | seq0 12 15 5 7 | seq0 15 16 2 8 | seq0 16 19 1 9 | seq0 19 21 2 10 | -------------------------------------------------------------------------------- /tests/test_cases/case_1a/bed_map/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 2 0.5 2 | seq0 2 4 1 3 | seq0 4 6 0.2 4 | seq0 6 7 0.5 5 | seq0 7 12 1 6 | seq0 12 15 0.2 7 | seq0 15 16 0.5 8 | seq0 16 19 1 9 | seq0 19 21 0.5 10 | -------------------------------------------------------------------------------- /tests/test_cases/case_1a/csv/genome.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome.fa" 2 | 0,0;0,0|0,19 3 | 0,1;0,1|0,20 4 | 0,2;0,2 5 | 0,3;0,3 6 | 0,4;0,4|0,5|0,12|0,13|0,14 7 | 0,5;0,4|0,5|0,12|0,13|0,14 8 | 0,6;0,6|0,15 9 | 0,7;0,7 10 | 0,8;0,8 11 | 0,9;0,9 12 | 0,10;0,10 13 | 0,11;0,11 14 | 0,12;0,4|0,5|0,12|0,13|0,14 15 | 0,13;0,4|0,5|0,12|0,13|0,14 16 | 0,14;0,4|0,5|0,12|0,13|0,14 17 | 0,15;0,6|0,15 18 | 0,16;0,16 19 | 0,17;0,17 20 | 0,18;0,18 21 | 0,19;0,0|0,19 22 | 0,20;0,1|0,20 23 | -------------------------------------------------------------------------------- /tests/test_cases/case_1a/genome.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTAAAAGGACAAAAAGCTGGT 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1a/raw_freq16/genome.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_1a/raw_freq8/genome.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_1a/raw_map/genome.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_1a/raw_map/genome.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_1a/txt_freq16/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 2 2 1 1 5 5 2 1 1 1 1 1 5 5 5 2 1 1 1 2 2 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1a/txt_freq8/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 2 2 1 1 5 5 2 1 1 1 1 1 5 5 5 2 1 1 1 2 2 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1a/txt_map/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.5 0.5 1 1 0.2 0.2 0.5 1 1 1 1 1 0.2 0.2 0.2 0.5 1 1 1 0.5 0.5 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1a/wig_freq16/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 23 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_1a/wig_freq16/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=2 2 | 1 2 3 | 3 1 4 | 5 5 5 | variableStep chrom=seq0 span=1 6 | 7 2 7 | variableStep chrom=seq0 span=5 8 | 8 1 9 | variableStep chrom=seq0 span=3 10 | 13 5 11 | variableStep chrom=seq0 span=1 12 | 16 2 13 | variableStep chrom=seq0 span=3 14 | 17 1 15 | variableStep chrom=seq0 span=2 16 | 20 2 17 | -------------------------------------------------------------------------------- /tests/test_cases/case_1a/wig_map/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 23 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_1a/wig_map/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=2 2 | 1 0.5 3 | 3 1 4 | 5 0.2 5 | variableStep chrom=seq0 span=1 6 | 7 0.5 7 | variableStep chrom=seq0 span=5 8 | 8 1 9 | variableStep chrom=seq0 span=3 10 | 13 0.2 11 | variableStep chrom=seq0 span=1 12 | 16 0.5 13 | variableStep chrom=seq0 span=3 14 | 17 1 15 | variableStep chrom=seq0 span=2 16 | 20 0.5 17 | -------------------------------------------------------------------------------- /tests/test_cases/case_1b/bed_freq16/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 2 3 2 | seq0 2 4 2 3 | seq0 4 5 3 4 | seq0 5 6 2 5 | seq0 6 8 4 6 | seq0 8 12 2 7 | seq0 12 14 3 8 | seq0 14 15 2 9 | seq0 15 17 4 10 | seq0 17 19 2 11 | seq0 19 20 3 12 | -------------------------------------------------------------------------------- /tests/test_cases/case_1b/bed_map/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 2 0.333333 2 | seq0 2 4 0.5 3 | seq0 4 5 0.333333 4 | seq0 5 6 0.5 5 | seq0 6 8 0.25 6 | seq0 8 12 0.5 7 | seq0 12 14 0.333333 8 | seq0 14 15 0.5 9 | seq0 15 17 0.25 10 | seq0 17 19 0.5 11 | seq0 19 20 0.333333 12 | -------------------------------------------------------------------------------- /tests/test_cases/case_1b/csv/genome.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome.fa";"- strand genome.fa" 2 | 0,0;0,0;0,4|0,13 3 | 0,1;0,1|0,19;0,12 4 | 0,2;0,2;0,11 5 | 0,3;0,3;0,10 6 | 0,4;0,4|0,13;0,0 7 | 0,5;0,5|0,14; 8 | 0,6;0,6|0,7|0,15|0,16; 9 | 0,7;0,6|0,7|0,15|0,16; 10 | 0,8;0,8|0,17; 11 | 0,9;0,9|0,18; 12 | 0,10;0,10;0,3 13 | 0,11;0,11;0,2 14 | 0,12;0,12;0,1|0,19 15 | 0,13;0,4|0,13;0,0 16 | 0,14;0,5|0,14; 17 | 0,15;0,6|0,7|0,15|0,16; 18 | 0,16;0,6|0,7|0,15|0,16; 19 | 0,17;0,8|0,17; 20 | 0,18;0,9|0,18; 21 | 0,19;0,1|0,19;0,12 22 | -------------------------------------------------------------------------------- /tests/test_cases/case_1b/genome.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGACCAAAAGGT 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1b/raw_freq16/genome.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_1b/raw_freq8/genome.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_1b/raw_map/genome.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_1b/raw_map/genome.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_1b/txt_freq16/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 3 3 2 2 3 2 4 4 2 2 2 2 3 3 2 4 4 2 2 3 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1b/txt_map/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.333333 0.333333 0.5 0.5 0.333333 0.5 0.25 0.25 0.5 0.5 0.5 0.5 0.333333 0.333333 0.5 0.25 0.25 0.5 0.5 0.333333 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1b/wig_freq16/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_1b/wig_freq16/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=2 2 | 1 3 3 | 3 2 4 | variableStep chrom=seq0 span=1 5 | 5 3 6 | 6 2 7 | variableStep chrom=seq0 span=2 8 | 7 4 9 | variableStep chrom=seq0 span=4 10 | 9 2 11 | variableStep chrom=seq0 span=2 12 | 13 3 13 | variableStep chrom=seq0 span=1 14 | 15 2 15 | variableStep chrom=seq0 span=2 16 | 16 4 17 | 18 2 18 | variableStep chrom=seq0 span=1 19 | 20 3 20 | -------------------------------------------------------------------------------- /tests/test_cases/case_1b/wig_map/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_1b/wig_map/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=2 2 | 1 0.333333 3 | 3 0.5 4 | variableStep chrom=seq0 span=1 5 | 5 0.333333 6 | 6 0.5 7 | variableStep chrom=seq0 span=2 8 | 7 0.25 9 | variableStep chrom=seq0 span=4 10 | 9 0.5 11 | variableStep chrom=seq0 span=2 12 | 13 0.333333 13 | variableStep chrom=seq0 span=1 14 | 15 0.5 15 | variableStep chrom=seq0 span=2 16 | 16 0.25 17 | 18 0.5 18 | variableStep chrom=seq0 span=1 19 | 20 0.333333 20 | -------------------------------------------------------------------------------- /tests/test_cases/case_1c/bed_freq16/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 6 1 2 | seq0 6 7 2 3 | seq0 11 12 2 4 | -------------------------------------------------------------------------------- /tests/test_cases/case_1c/bed_map/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 6 1 2 | seq0 6 7 0.5 3 | seq0 11 12 0.5 4 | -------------------------------------------------------------------------------- /tests/test_cases/case_1c/csv/genome.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome.fa" 2 | 0,0;0,0 3 | 0,1;0,1 4 | 0,2;0,2 5 | 0,3;0,3 6 | 0,4;0,4 7 | 0,5;0,5 8 | 0,6;0,6|0,11 9 | 0,11;0,6|0,11 10 | -------------------------------------------------------------------------------- /tests/test_cases/case_1c/genome.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCGAAANNAAANGGNNN 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1c/raw_freq16/genome.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_1c/raw_freq8/genome.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_1c/raw_map/genome.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_1c/raw_map/genome.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_1c/txt_freq16/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 1 1 1 1 1 1 2 0 0 0 0 2 0 0 0 0 0 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1c/txt_map/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 1 1 1 1 1 1 0.5 0 0 0 0 0.5 0 0 0 0 0 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1c/wig_freq16/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 20 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_1c/wig_freq16/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=6 2 | 1 1 3 | variableStep chrom=seq0 span=1 4 | 7 2 5 | 12 2 6 | -------------------------------------------------------------------------------- /tests/test_cases/case_1c/wig_map/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 20 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_1c/wig_map/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=6 2 | 1 1 3 | variableStep chrom=seq0 span=1 4 | 7 0.5 5 | 12 0.5 6 | -------------------------------------------------------------------------------- /tests/test_cases/case_1d/bed_freq16/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 3 1 2 | seq0 3 5 2 3 | seq0 5 6 1 4 | seq0 6 7 2 5 | seq0 11 12 2 6 | -------------------------------------------------------------------------------- /tests/test_cases/case_1d/bed_map/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 3 1 2 | seq0 3 5 0.5 3 | seq0 5 6 1 4 | seq0 6 7 0.5 5 | seq0 11 12 0.5 6 | -------------------------------------------------------------------------------- /tests/test_cases/case_1d/csv/genome.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome.fa";"- strand genome.fa" 2 | 0,0;0,0; 3 | 0,1;0,1; 4 | 0,2;0,2; 5 | 0,3;0,3;0,4 6 | 0,4;0,4;0,3 7 | 0,5;0,5; 8 | 0,6;0,6|0,11; 9 | 0,11;0,6|0,11; 10 | -------------------------------------------------------------------------------- /tests/test_cases/case_1d/genome.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCGAAANNAAANGGNNN 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1d/raw_freq16/genome.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_1d/raw_freq8/genome.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_1d/raw_map/genome.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_1d/raw_map/genome.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_1d/txt_freq16/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 1 1 1 2 2 1 2 0 0 0 0 2 0 0 0 0 0 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1d/txt_map/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 1 1 1 0.5 0.5 1 0.5 0 0 0 0 0.5 0 0 0 0 0 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1d/wig_freq16/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 20 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_1d/wig_freq16/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=3 2 | 1 1 3 | variableStep chrom=seq0 span=2 4 | 4 2 5 | variableStep chrom=seq0 span=1 6 | 6 1 7 | 7 2 8 | 12 2 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_1d/wig_map/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 20 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_1d/wig_map/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=3 2 | 1 1 3 | variableStep chrom=seq0 span=2 4 | 4 0.5 5 | variableStep chrom=seq0 span=1 6 | 6 1 7 | 7 0.5 8 | 12 0.5 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_1e/bed_freq16/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 3 2 | seq0 1 2 2 3 | seq0 2 3 1 4 | seq0 3 4 2 5 | seq0 4 5 1 6 | seq0 5 6 4 7 | seq0 6 7 6 8 | seq0 7 8 4 9 | seq0 10 11 4 10 | seq0 11 12 6 11 | seq0 12 13 4 12 | seq0 13 14 1 13 | seq0 14 16 2 14 | -------------------------------------------------------------------------------- /tests/test_cases/case_1e/bed_map/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 0.333333 2 | seq0 1 2 0.5 3 | seq0 2 3 1 4 | seq0 3 4 0.5 5 | seq0 4 5 1 6 | seq0 5 6 0.25 7 | seq0 6 7 0.166667 8 | seq0 7 8 0.25 9 | seq0 10 11 0.25 10 | seq0 11 12 0.166667 11 | seq0 12 13 0.25 12 | seq0 13 14 1 13 | seq0 14 16 0.5 14 | -------------------------------------------------------------------------------- /tests/test_cases/case_1e/csv/genome.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome.fa" 2 | 0,0;0,0|0,3|0,14 3 | 0,1;0,1|0,15 4 | 0,2;0,2 5 | 0,3;0,0|0,3 6 | 0,4;0,4 7 | 0,5;0,5|0,6|0,10|0,11 8 | 0,6;0,5|0,6|0,7|0,10|0,11|0,12 9 | 0,7;0,6|0,7|0,11|0,12 10 | 0,10;0,5|0,6|0,10|0,11 11 | 0,11;0,5|0,6|0,7|0,10|0,11|0,12 12 | 0,12;0,6|0,7|0,11|0,12 13 | 0,13;0,13 14 | 0,14;0,0|0,14 15 | 0,15;0,1|0,15 16 | -------------------------------------------------------------------------------- /tests/test_cases/case_1e/genome.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCGAAANNAAANGGNNN 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1e/raw_freq16/genome.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_1e/raw_freq8/genome.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_1e/raw_map/genome.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_1e/raw_map/genome.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_1e/txt_freq16/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 3 2 1 2 1 4 6 4 0 0 4 6 4 1 2 2 0 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1e/txt_map/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.333333 0.5 1 0.5 1 0.25 0.166667 0.25 0 0 0.25 0.166667 0.25 1 0.5 0.5 0 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1e/wig_freq16/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 20 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_1e/wig_freq16/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 3 3 | 2 2 4 | 3 1 5 | 4 2 6 | 5 1 7 | 6 4 8 | 7 6 9 | 8 4 10 | 11 4 11 | 12 6 12 | 13 4 13 | 14 1 14 | variableStep chrom=seq0 span=2 15 | 15 2 16 | -------------------------------------------------------------------------------- /tests/test_cases/case_1e/wig_map/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 20 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_1e/wig_map/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 0.333333 3 | 2 0.5 4 | 3 1 5 | 4 0.5 6 | 5 1 7 | 6 0.25 8 | 7 0.166667 9 | 8 0.25 10 | 11 0.25 11 | 12 0.166667 12 | 13 0.25 13 | 14 1 14 | variableStep chrom=seq0 span=2 15 | 15 0.5 16 | -------------------------------------------------------------------------------- /tests/test_cases/case_1f/bed_freq16/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 4 2 | seq0 1 2 2 3 | seq0 2 5 3 4 | seq0 5 6 5 5 | seq0 6 7 6 6 | seq0 7 8 4 7 | seq0 10 11 4 8 | seq0 11 12 6 9 | seq0 12 13 4 10 | seq0 13 14 1 11 | seq0 14 16 2 12 | -------------------------------------------------------------------------------- /tests/test_cases/case_1f/bed_map/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 0.25 2 | seq0 1 2 0.5 3 | seq0 2 5 0.333333 4 | seq0 5 6 0.2 5 | seq0 6 7 0.166667 6 | seq0 7 8 0.25 7 | seq0 10 11 0.25 8 | seq0 11 12 0.166667 9 | seq0 12 13 0.25 10 | seq0 13 14 1 11 | seq0 14 16 0.5 12 | -------------------------------------------------------------------------------- /tests/test_cases/case_1f/csv/genome.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome.fa";"- strand genome.fa" 2 | 0,0;0,0|0,3|0,14;0,4 3 | 0,1;0,1|0,15; 4 | 0,2;0,2;0,2|0,5 5 | 0,3;0,0|0,3;0,4 6 | 0,4;0,4;0,0|0,3 7 | 0,5;0,5|0,6|0,10|0,11;0,2 8 | 0,6;0,5|0,6|0,7|0,10|0,11|0,12; 9 | 0,7;0,6|0,7|0,11|0,12; 10 | 0,10;0,5|0,6|0,10|0,11; 11 | 0,11;0,5|0,6|0,7|0,10|0,11|0,12; 12 | 0,12;0,6|0,7|0,11|0,12; 13 | 0,13;0,13; 14 | 0,14;0,0|0,14; 15 | 0,15;0,1|0,15; 16 | -------------------------------------------------------------------------------- /tests/test_cases/case_1f/genome.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCGAAANNAAANGGNNN 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1f/raw_freq16/genome.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_1f/raw_freq8/genome.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_1f/raw_map/genome.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_1f/raw_map/genome.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_1f/txt_freq16/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 4 2 3 3 3 5 6 4 0 0 4 6 4 1 2 2 0 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1f/txt_map/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.25 0.5 0.333333 0.333333 0.333333 0.2 0.166667 0.25 0 0 0.25 0.166667 0.25 1 0.5 0.5 0 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1f/wig_freq16/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 20 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_1f/wig_freq16/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 4 3 | 2 2 4 | variableStep chrom=seq0 span=3 5 | 3 3 6 | variableStep chrom=seq0 span=1 7 | 6 5 8 | 7 6 9 | 8 4 10 | 11 4 11 | 12 6 12 | 13 4 13 | 14 1 14 | variableStep chrom=seq0 span=2 15 | 15 2 16 | -------------------------------------------------------------------------------- /tests/test_cases/case_1f/wig_map/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 20 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_1f/wig_map/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 0.25 3 | 2 0.5 4 | variableStep chrom=seq0 span=3 5 | 3 0.333333 6 | variableStep chrom=seq0 span=1 7 | 6 0.2 8 | 7 0.166667 9 | 8 0.25 10 | 11 0.25 11 | 12 0.166667 12 | 13 0.25 13 | 14 1 14 | variableStep chrom=seq0 span=2 15 | 15 0.5 16 | -------------------------------------------------------------------------------- /tests/test_cases/case_1g/bed_freq16/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 4 2 | seq0 1 2 2 3 | seq0 2 3 3 4 | seq0 6 7 6 5 | seq0 10 11 4 6 | seq0 11 12 6 7 | seq0 15 16 2 8 | -------------------------------------------------------------------------------- /tests/test_cases/case_1g/bed_map/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 0.25 2 | seq0 1 2 0.5 3 | seq0 2 3 0.333333 4 | seq0 6 7 0.166667 5 | seq0 10 11 0.25 6 | seq0 11 12 0.166667 7 | seq0 15 16 0.5 8 | -------------------------------------------------------------------------------- /tests/test_cases/case_1g/csv/genome.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome.fa";"- strand genome.fa" 2 | 0,0;0,0|0,3|0,14;0,4 3 | 0,1;0,1|0,15; 4 | 0,2;0,2;0,2|0,5 5 | 0,6;0,5|0,6|0,7|0,10|0,11|0,12; 6 | 0,10;0,5|0,6|0,10|0,11; 7 | 0,11;0,5|0,6|0,7|0,10|0,11|0,12; 8 | 0,15;0,1|0,15; 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_1g/genome.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCGAAANNAAANGGNNN 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1g/raw_freq16/genome.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_1g/raw_freq8/genome.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_1g/raw_map/genome.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_1g/raw_map/genome.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_1g/subset.bed: -------------------------------------------------------------------------------- 1 | seq0 0 3 2 | seq0 6 7 3 | seq0 9 12 4 | seq0 15 16 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_1g/txt_freq16/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 4 2 3 0 0 0 6 0 0 0 4 6 0 0 0 2 0 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1g/txt_map/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.25 0.5 0.333333 0 0 0 0.166667 0 0 0 0.25 0.166667 0 0 0 0.5 0 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_1g/wig_freq16/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 20 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_1g/wig_freq16/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 4 3 | 2 2 4 | 3 3 5 | 7 6 6 | 11 4 7 | 12 6 8 | 16 2 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_1g/wig_map/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 20 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_1g/wig_map/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 0.25 3 | 2 0.5 4 | 3 0.333333 5 | 7 0.166667 6 | 11 0.25 7 | 12 0.166667 8 | 16 0.5 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_2a/bed_freq16/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 4 1 2 | seq0 4 5 3 3 | seq0 5 8 2 4 | seq0 8 9 3 5 | seq0 9 12 1 6 | seq0 12 13 2 7 | seq0 13 14 3 8 | seq0 14 17 2 9 | seq0 17 18 3 10 | seq0 18 19 2 11 | seq1 0 1 3 12 | seq1 1 4 1 13 | seq2 0 1 1 14 | seq2 1 2 3 15 | seq2 2 3 2 16 | seq2 3 6 1 17 | seq2 6 7 2 18 | -------------------------------------------------------------------------------- /tests/test_cases/case_2a/bed_map/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 4 1 2 | seq0 4 5 0.333333 3 | seq0 5 8 0.5 4 | seq0 8 9 0.333333 5 | seq0 9 12 1 6 | seq0 12 13 0.5 7 | seq0 13 14 0.333333 8 | seq0 14 17 0.5 9 | seq0 17 18 0.333333 10 | seq0 18 19 0.5 11 | seq1 0 1 0.333333 12 | seq1 1 4 1 13 | seq2 0 1 1 14 | seq2 1 2 0.333333 15 | seq2 2 3 0.5 16 | seq2 3 6 1 17 | seq2 6 7 0.5 18 | -------------------------------------------------------------------------------- /tests/test_cases/case_2a/csv/genome.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome.fa" 2 | 0,0;0,0 3 | 0,1;0,1 4 | 0,2;0,2 5 | 0,3;0,3 6 | 0,4;0,4|0,13|1,0 7 | 0,5;0,5|0,14 8 | 0,6;0,6|0,15 9 | 0,7;0,7|0,16 10 | 0,8;0,8|0,17|2,1 11 | 0,9;0,9 12 | 0,10;0,10 13 | 0,11;0,11 14 | 0,12;0,12|2,6 15 | 0,13;0,4|0,13|1,0 16 | 0,14;0,5|0,14 17 | 0,15;0,6|0,15 18 | 0,16;0,7|0,16 19 | 0,17;0,8|0,17|2,1 20 | 0,18;0,18|2,2 21 | 1,0;0,4|0,13|1,0 22 | 1,1;1,1 23 | 1,2;1,2 24 | 1,3;1,3 25 | 2,0;2,0 26 | 2,1;0,8|0,17|2,1 27 | 2,2;0,18|2,2 28 | 2,3;2,3 29 | 2,4;2,4 30 | 2,5;2,5 31 | 2,6;0,12|2,6 32 | -------------------------------------------------------------------------------- /tests/test_cases/case_2a/genome.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGACCAAAAGGT 3 | >seq1 4 | CCAACCT 5 | >seq2 6 | TAAGGTACCA 7 | -------------------------------------------------------------------------------- /tests/test_cases/case_2a/raw_freq16/genome.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_2a/raw_freq8/genome.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_2a/raw_map/genome.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_2a/raw_map/genome.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_2a/txt_freq16/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 1 1 1 1 3 2 2 2 3 1 1 1 2 3 2 2 2 3 2 0 0 0 3 | >seq1 4 | 3 1 1 1 0 0 0 5 | >seq2 6 | 1 3 2 1 1 1 2 0 0 0 7 | -------------------------------------------------------------------------------- /tests/test_cases/case_2a/txt_map/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 1 1 1 1 0.333333 0.5 0.5 0.5 0.333333 1 1 1 0.5 0.333333 0.5 0.5 0.5 0.333333 0.5 0 0 0 3 | >seq1 4 | 0.333333 1 1 1 0 0 0 5 | >seq2 6 | 1 0.333333 0.5 1 1 1 0.5 0 0 0 7 | -------------------------------------------------------------------------------- /tests/test_cases/case_2a/wig_freq16/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 7 3 | seq2 10 4 | -------------------------------------------------------------------------------- /tests/test_cases/case_2a/wig_freq16/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=4 2 | 1 1 3 | variableStep chrom=seq0 span=1 4 | 5 3 5 | variableStep chrom=seq0 span=3 6 | 6 2 7 | variableStep chrom=seq0 span=1 8 | 9 3 9 | variableStep chrom=seq0 span=3 10 | 10 1 11 | variableStep chrom=seq0 span=1 12 | 13 2 13 | 14 3 14 | variableStep chrom=seq0 span=3 15 | 15 2 16 | variableStep chrom=seq0 span=1 17 | 18 3 18 | 19 2 19 | variableStep chrom=seq1 span=1 20 | 1 3 21 | variableStep chrom=seq1 span=3 22 | 2 1 23 | variableStep chrom=seq2 span=1 24 | 1 1 25 | 2 3 26 | 3 2 27 | variableStep chrom=seq2 span=3 28 | 4 1 29 | variableStep chrom=seq2 span=1 30 | 7 2 31 | -------------------------------------------------------------------------------- /tests/test_cases/case_2a/wig_map/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 7 3 | seq2 10 4 | -------------------------------------------------------------------------------- /tests/test_cases/case_2a/wig_map/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=4 2 | 1 1 3 | variableStep chrom=seq0 span=1 4 | 5 0.333333 5 | variableStep chrom=seq0 span=3 6 | 6 0.5 7 | variableStep chrom=seq0 span=1 8 | 9 0.333333 9 | variableStep chrom=seq0 span=3 10 | 10 1 11 | variableStep chrom=seq0 span=1 12 | 13 0.5 13 | 14 0.333333 14 | variableStep chrom=seq0 span=3 15 | 15 0.5 16 | variableStep chrom=seq0 span=1 17 | 18 0.333333 18 | 19 0.5 19 | variableStep chrom=seq1 span=1 20 | 1 0.333333 21 | variableStep chrom=seq1 span=3 22 | 2 1 23 | variableStep chrom=seq2 span=1 24 | 1 1 25 | 2 0.333333 26 | 3 0.5 27 | variableStep chrom=seq2 span=3 28 | 4 1 29 | variableStep chrom=seq2 span=1 30 | 7 0.5 31 | -------------------------------------------------------------------------------- /tests/test_cases/case_2b/bed_freq16/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 3 2 | seq0 1 3 2 3 | seq0 3 4 1 4 | seq0 4 5 3 5 | seq0 5 8 2 6 | seq0 8 9 3 7 | seq0 9 10 1 8 | seq0 10 12 2 9 | seq0 12 14 3 10 | seq0 14 17 2 11 | seq0 17 19 3 12 | seq1 0 1 3 13 | seq1 1 3 1 14 | seq1 3 4 3 15 | seq2 0 1 1 16 | seq2 1 3 3 17 | seq2 3 6 2 18 | seq2 6 7 3 19 | -------------------------------------------------------------------------------- /tests/test_cases/case_2b/bed_map/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 0.333333 2 | seq0 1 3 0.5 3 | seq0 3 4 1 4 | seq0 4 5 0.333333 5 | seq0 5 8 0.5 6 | seq0 8 9 0.333333 7 | seq0 9 10 1 8 | seq0 10 12 0.5 9 | seq0 12 14 0.333333 10 | seq0 14 17 0.5 11 | seq0 17 19 0.333333 12 | seq1 0 1 0.333333 13 | seq1 1 3 1 14 | seq1 3 4 0.333333 15 | seq2 0 1 1 16 | seq2 1 3 0.333333 17 | seq2 3 6 0.5 18 | seq2 6 7 0.333333 19 | -------------------------------------------------------------------------------- /tests/test_cases/case_2b/csv/genome.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome.fa";"- strand genome.fa" 2 | 0,0;0,0;0,12|2,6 3 | 0,1;0,1;0,11 4 | 0,2;0,2;0,10 5 | 0,3;0,3; 6 | 0,4;0,4|0,13|1,0; 7 | 0,5;0,5|0,14; 8 | 0,6;0,6|0,15; 9 | 0,7;0,7|0,16; 10 | 0,8;0,8|0,17|2,1; 11 | 0,9;0,9; 12 | 0,10;0,10;0,2 13 | 0,11;0,11;0,1 14 | 0,12;0,12|2,6;0,0 15 | 0,13;0,4|0,13|1,0; 16 | 0,14;0,5|0,14; 17 | 0,15;0,6|0,15; 18 | 0,16;0,7|0,16; 19 | 0,17;0,8|0,17|2,1; 20 | 0,18;0,18|2,2;1,3 21 | 1,0;0,4|0,13|1,0; 22 | 1,1;1,1; 23 | 1,2;1,2; 24 | 1,3;1,3;0,18|2,2 25 | 2,0;2,0; 26 | 2,1;0,8|0,17|2,1; 27 | 2,2;0,18|2,2;1,3 28 | 2,3;2,3;2,5 29 | 2,4;2,4;2,4 30 | 2,5;2,5;2,3 31 | 2,6;0,12|2,6;0,0 32 | -------------------------------------------------------------------------------- /tests/test_cases/case_2b/genome.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGACCAAAAGGT 3 | >seq1 4 | CCAACCT 5 | >seq2 6 | TAAGGTACCA 7 | -------------------------------------------------------------------------------- /tests/test_cases/case_2b/raw_freq16/genome.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_2b/raw_freq8/genome.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_2b/raw_map/genome.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_2b/raw_map/genome.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_2b/txt_freq16/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 3 2 2 1 3 2 2 2 3 1 2 2 3 3 2 2 2 3 3 0 0 0 3 | >seq1 4 | 3 1 1 3 0 0 0 5 | >seq2 6 | 1 3 3 2 2 2 3 0 0 0 7 | -------------------------------------------------------------------------------- /tests/test_cases/case_2b/txt_map/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.333333 0.5 0.5 1 0.333333 0.5 0.5 0.5 0.333333 1 0.5 0.5 0.333333 0.333333 0.5 0.5 0.5 0.333333 0.333333 0 0 0 3 | >seq1 4 | 0.333333 1 1 0.333333 0 0 0 5 | >seq2 6 | 1 0.333333 0.333333 0.5 0.5 0.5 0.333333 0 0 0 7 | -------------------------------------------------------------------------------- /tests/test_cases/case_2b/wig_freq16/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 7 3 | seq2 10 4 | -------------------------------------------------------------------------------- /tests/test_cases/case_2b/wig_freq16/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 3 3 | variableStep chrom=seq0 span=2 4 | 2 2 5 | variableStep chrom=seq0 span=1 6 | 4 1 7 | 5 3 8 | variableStep chrom=seq0 span=3 9 | 6 2 10 | variableStep chrom=seq0 span=1 11 | 9 3 12 | 10 1 13 | variableStep chrom=seq0 span=2 14 | 11 2 15 | 13 3 16 | variableStep chrom=seq0 span=3 17 | 15 2 18 | variableStep chrom=seq0 span=2 19 | 18 3 20 | variableStep chrom=seq1 span=1 21 | 1 3 22 | variableStep chrom=seq1 span=2 23 | 2 1 24 | variableStep chrom=seq1 span=1 25 | 4 3 26 | variableStep chrom=seq2 span=1 27 | 1 1 28 | variableStep chrom=seq2 span=2 29 | 2 3 30 | variableStep chrom=seq2 span=3 31 | 4 2 32 | variableStep chrom=seq2 span=1 33 | 7 3 34 | -------------------------------------------------------------------------------- /tests/test_cases/case_2b/wig_map/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 7 3 | seq2 10 4 | -------------------------------------------------------------------------------- /tests/test_cases/case_2b/wig_map/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 0.333333 3 | variableStep chrom=seq0 span=2 4 | 2 0.5 5 | variableStep chrom=seq0 span=1 6 | 4 1 7 | 5 0.333333 8 | variableStep chrom=seq0 span=3 9 | 6 0.5 10 | variableStep chrom=seq0 span=1 11 | 9 0.333333 12 | 10 1 13 | variableStep chrom=seq0 span=2 14 | 11 0.5 15 | 13 0.333333 16 | variableStep chrom=seq0 span=3 17 | 15 0.5 18 | variableStep chrom=seq0 span=2 19 | 18 0.333333 20 | variableStep chrom=seq1 span=1 21 | 1 0.333333 22 | variableStep chrom=seq1 span=2 23 | 2 1 24 | variableStep chrom=seq1 span=1 25 | 4 0.333333 26 | variableStep chrom=seq2 span=1 27 | 1 1 28 | variableStep chrom=seq2 span=2 29 | 2 0.333333 30 | variableStep chrom=seq2 span=3 31 | 4 0.5 32 | variableStep chrom=seq2 span=1 33 | 7 0.333333 34 | -------------------------------------------------------------------------------- /tests/test_cases/case_2c/bed_freq16/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 4 1 2 | seq0 4 5 3 3 | seq0 5 8 2 4 | seq0 8 9 3 5 | seq0 9 12 1 6 | seq0 12 13 2 7 | seq0 13 14 3 8 | seq0 14 17 2 9 | seq0 17 18 3 10 | seq0 18 19 2 11 | seq1 0 1 3 12 | seq3 0 1 3 13 | seq3 1 2 2 14 | seq3 2 5 1 15 | seq3 5 6 2 16 | seq3 6 10 1 17 | -------------------------------------------------------------------------------- /tests/test_cases/case_2c/bed_map/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 4 1 2 | seq0 4 5 0.333333 3 | seq0 5 8 0.5 4 | seq0 8 9 0.333333 5 | seq0 9 12 1 6 | seq0 12 13 0.5 7 | seq0 13 14 0.333333 8 | seq0 14 17 0.5 9 | seq0 17 18 0.333333 10 | seq0 18 19 0.5 11 | seq1 0 1 0.333333 12 | seq3 0 1 0.333333 13 | seq3 1 2 0.5 14 | seq3 2 5 1 15 | seq3 5 6 0.5 16 | seq3 6 10 1 17 | -------------------------------------------------------------------------------- /tests/test_cases/case_2c/csv/genome.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome.fa" 2 | 0,0;0,0 3 | 0,1;0,1 4 | 0,2;0,2 5 | 0,3;0,3 6 | 0,4;0,4|0,13|1,0 7 | 0,5;0,5|0,14 8 | 0,6;0,6|0,15 9 | 0,7;0,7|0,16 10 | 0,8;0,8|0,17|3,0 11 | 0,9;0,9 12 | 0,10;0,10 13 | 0,11;0,11 14 | 0,12;0,12|3,5 15 | 0,13;0,4|0,13|1,0 16 | 0,14;0,5|0,14 17 | 0,15;0,6|0,15 18 | 0,16;0,7|0,16 19 | 0,17;0,8|0,17|3,0 20 | 0,18;0,18|3,1 21 | 1,0;0,4|0,13|1,0 22 | 3,0;0,8|0,17|3,0 23 | 3,1;0,18|3,1 24 | 3,2;3,2 25 | 3,3;3,3 26 | 3,4;3,4 27 | 3,5;0,12|3,5 28 | 3,6;3,6 29 | 3,7;3,7 30 | 3,8;3,8 31 | 3,9;3,9 32 | -------------------------------------------------------------------------------- /tests/test_cases/case_2c/genome.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGACCAAAAGGT 3 | >seq1 4 | CCAA 5 | >seq2 6 | CCA 7 | >seq3 8 | AAGGTACCATTGG 9 | >seq4 10 | CCA 11 | -------------------------------------------------------------------------------- /tests/test_cases/case_2c/raw_freq16/genome.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_2c/raw_freq8/genome.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_2c/raw_map/genome.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_2c/raw_map/genome.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_2c/txt_freq16/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 1 1 1 1 3 2 2 2 3 1 1 1 2 3 2 2 2 3 2 0 0 0 3 | >seq1 4 | 3 0 0 0 5 | >seq2 6 | 0 0 0 7 | >seq3 8 | 3 2 1 1 1 2 1 1 1 1 0 0 0 9 | >seq4 10 | 0 0 0 11 | -------------------------------------------------------------------------------- /tests/test_cases/case_2c/txt_map/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 1 1 1 1 0.333333 0.5 0.5 0.5 0.333333 1 1 1 0.5 0.333333 0.5 0.5 0.5 0.333333 0.5 0 0 0 3 | >seq1 4 | 0.333333 0 0 0 5 | >seq2 6 | 0 0 0 7 | >seq3 8 | 0.333333 0.5 1 1 1 0.5 1 1 1 1 0 0 0 9 | >seq4 10 | 0 0 0 11 | -------------------------------------------------------------------------------- /tests/test_cases/case_2c/wig_freq16/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 4 3 | seq2 3 4 | seq3 13 5 | seq4 3 6 | -------------------------------------------------------------------------------- /tests/test_cases/case_2c/wig_freq16/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=4 2 | 1 1 3 | variableStep chrom=seq0 span=1 4 | 5 3 5 | variableStep chrom=seq0 span=3 6 | 6 2 7 | variableStep chrom=seq0 span=1 8 | 9 3 9 | variableStep chrom=seq0 span=3 10 | 10 1 11 | variableStep chrom=seq0 span=1 12 | 13 2 13 | 14 3 14 | variableStep chrom=seq0 span=3 15 | 15 2 16 | variableStep chrom=seq0 span=1 17 | 18 3 18 | 19 2 19 | variableStep chrom=seq1 span=1 20 | 1 3 21 | variableStep chrom=seq3 span=1 22 | 1 3 23 | 2 2 24 | variableStep chrom=seq3 span=3 25 | 3 1 26 | variableStep chrom=seq3 span=1 27 | 6 2 28 | variableStep chrom=seq3 span=4 29 | 7 1 30 | -------------------------------------------------------------------------------- /tests/test_cases/case_2c/wig_map/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 4 3 | seq2 3 4 | seq3 13 5 | seq4 3 6 | -------------------------------------------------------------------------------- /tests/test_cases/case_2c/wig_map/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=4 2 | 1 1 3 | variableStep chrom=seq0 span=1 4 | 5 0.333333 5 | variableStep chrom=seq0 span=3 6 | 6 0.5 7 | variableStep chrom=seq0 span=1 8 | 9 0.333333 9 | variableStep chrom=seq0 span=3 10 | 10 1 11 | variableStep chrom=seq0 span=1 12 | 13 0.5 13 | 14 0.333333 14 | variableStep chrom=seq0 span=3 15 | 15 0.5 16 | variableStep chrom=seq0 span=1 17 | 18 0.333333 18 | 19 0.5 19 | variableStep chrom=seq1 span=1 20 | 1 0.333333 21 | variableStep chrom=seq3 span=1 22 | 1 0.333333 23 | 2 0.5 24 | variableStep chrom=seq3 span=3 25 | 3 1 26 | variableStep chrom=seq3 span=1 27 | 6 0.5 28 | variableStep chrom=seq3 span=4 29 | 7 1 30 | -------------------------------------------------------------------------------- /tests/test_cases/case_2d/bed_freq16/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 3 2 | seq0 1 3 2 3 | seq0 3 4 1 4 | seq0 4 5 4 5 | seq0 5 8 2 6 | seq0 8 9 3 7 | seq0 9 10 1 8 | seq0 10 12 2 9 | seq0 12 13 3 10 | seq0 13 14 4 11 | seq0 14 17 2 12 | seq0 17 18 3 13 | seq0 18 19 2 14 | seq1 0 1 4 15 | seq3 0 1 3 16 | seq3 1 5 2 17 | seq3 5 6 3 18 | seq3 6 9 1 19 | seq3 9 10 4 20 | -------------------------------------------------------------------------------- /tests/test_cases/case_2d/bed_map/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 0.333333 2 | seq0 1 3 0.5 3 | seq0 3 4 1 4 | seq0 4 5 0.25 5 | seq0 5 8 0.5 6 | seq0 8 9 0.333333 7 | seq0 9 10 1 8 | seq0 10 12 0.5 9 | seq0 12 13 0.333333 10 | seq0 13 14 0.25 11 | seq0 14 17 0.5 12 | seq0 17 18 0.333333 13 | seq0 18 19 0.5 14 | seq1 0 1 0.25 15 | seq3 0 1 0.333333 16 | seq3 1 5 0.5 17 | seq3 5 6 0.333333 18 | seq3 6 9 1 19 | seq3 9 10 0.25 20 | -------------------------------------------------------------------------------- /tests/test_cases/case_2d/csv/genome.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome.fa";"- strand genome.fa" 2 | 0,0;0,0;0,12|3,5 3 | 0,1;0,1;0,11 4 | 0,2;0,2;0,10 5 | 0,3;0,3; 6 | 0,4;0,4|0,13|1,0;3,9 7 | 0,5;0,5|0,14; 8 | 0,6;0,6|0,15; 9 | 0,7;0,7|0,16; 10 | 0,8;0,8|0,17|3,0; 11 | 0,9;0,9; 12 | 0,10;0,10;0,2 13 | 0,11;0,11;0,1 14 | 0,12;0,12|3,5;0,0 15 | 0,13;0,4|0,13|1,0;3,9 16 | 0,14;0,5|0,14; 17 | 0,15;0,6|0,15; 18 | 0,16;0,7|0,16; 19 | 0,17;0,8|0,17|3,0; 20 | 0,18;0,18|3,1; 21 | 1,0;0,4|0,13|1,0;3,9 22 | 3,0;0,8|0,17|3,0; 23 | 3,1;0,18|3,1; 24 | 3,2;3,2;3,4 25 | 3,3;3,3;3,3 26 | 3,4;3,4;3,2 27 | 3,5;0,12|3,5;0,0 28 | 3,6;3,6; 29 | 3,7;3,7; 30 | 3,8;3,8; 31 | 3,9;3,9;0,4|0,13|1,0 32 | -------------------------------------------------------------------------------- /tests/test_cases/case_2d/genome.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGACCAAAAGGT 3 | >seq1 4 | CCAA 5 | >seq2 6 | CCA 7 | >seq3 8 | AAGGTACCATTGG 9 | >seq4 10 | CCA 11 | -------------------------------------------------------------------------------- /tests/test_cases/case_2d/raw_freq16/genome.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_2d/raw_freq8/genome.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_2d/raw_map/genome.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_2d/raw_map/genome.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_2d/txt_freq16/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 3 2 2 1 4 2 2 2 3 1 2 2 3 4 2 2 2 3 2 0 0 0 3 | >seq1 4 | 4 0 0 0 5 | >seq2 6 | 0 0 0 7 | >seq3 8 | 3 2 2 2 2 3 1 1 1 4 0 0 0 9 | >seq4 10 | 0 0 0 11 | -------------------------------------------------------------------------------- /tests/test_cases/case_2d/txt_map/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.333333 0.5 0.5 1 0.25 0.5 0.5 0.5 0.333333 1 0.5 0.5 0.333333 0.25 0.5 0.5 0.5 0.333333 0.5 0 0 0 3 | >seq1 4 | 0.25 0 0 0 5 | >seq2 6 | 0 0 0 7 | >seq3 8 | 0.333333 0.5 0.5 0.5 0.5 0.333333 1 1 1 0.25 0 0 0 9 | >seq4 10 | 0 0 0 11 | -------------------------------------------------------------------------------- /tests/test_cases/case_2d/wig_freq16/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 4 3 | seq2 3 4 | seq3 13 5 | seq4 3 6 | -------------------------------------------------------------------------------- /tests/test_cases/case_2d/wig_freq16/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 3 3 | variableStep chrom=seq0 span=2 4 | 2 2 5 | variableStep chrom=seq0 span=1 6 | 4 1 7 | 5 4 8 | variableStep chrom=seq0 span=3 9 | 6 2 10 | variableStep chrom=seq0 span=1 11 | 9 3 12 | 10 1 13 | variableStep chrom=seq0 span=2 14 | 11 2 15 | variableStep chrom=seq0 span=1 16 | 13 3 17 | 14 4 18 | variableStep chrom=seq0 span=3 19 | 15 2 20 | variableStep chrom=seq0 span=1 21 | 18 3 22 | 19 2 23 | variableStep chrom=seq1 span=1 24 | 1 4 25 | variableStep chrom=seq3 span=1 26 | 1 3 27 | variableStep chrom=seq3 span=4 28 | 2 2 29 | variableStep chrom=seq3 span=1 30 | 6 3 31 | variableStep chrom=seq3 span=3 32 | 7 1 33 | variableStep chrom=seq3 span=1 34 | 10 4 35 | -------------------------------------------------------------------------------- /tests/test_cases/case_2d/wig_map/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 4 3 | seq2 3 4 | seq3 13 5 | seq4 3 6 | -------------------------------------------------------------------------------- /tests/test_cases/case_2d/wig_map/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 0.333333 3 | variableStep chrom=seq0 span=2 4 | 2 0.5 5 | variableStep chrom=seq0 span=1 6 | 4 1 7 | 5 0.25 8 | variableStep chrom=seq0 span=3 9 | 6 0.5 10 | variableStep chrom=seq0 span=1 11 | 9 0.333333 12 | 10 1 13 | variableStep chrom=seq0 span=2 14 | 11 0.5 15 | variableStep chrom=seq0 span=1 16 | 13 0.333333 17 | 14 0.25 18 | variableStep chrom=seq0 span=3 19 | 15 0.5 20 | variableStep chrom=seq0 span=1 21 | 18 0.333333 22 | 19 0.5 23 | variableStep chrom=seq1 span=1 24 | 1 0.25 25 | variableStep chrom=seq3 span=1 26 | 1 0.333333 27 | variableStep chrom=seq3 span=4 28 | 2 0.5 29 | variableStep chrom=seq3 span=1 30 | 6 0.333333 31 | variableStep chrom=seq3 span=3 32 | 7 1 33 | variableStep chrom=seq3 span=1 34 | 10 0.25 35 | -------------------------------------------------------------------------------- /tests/test_cases/case_2e/bed_freq16/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 3 2 | seq0 1 3 2 3 | seq0 6 7 2 4 | seq0 9 10 1 5 | seq0 10 12 2 6 | seq0 15 16 2 7 | seq3 5 6 3 8 | seq3 6 9 1 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_2e/bed_map/genome.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 0.333333 2 | seq0 1 3 0.5 3 | seq0 6 7 0.5 4 | seq0 9 10 1 5 | seq0 10 12 0.5 6 | seq0 15 16 0.5 7 | seq3 5 6 0.333333 8 | seq3 6 9 1 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_2e/csv/genome.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome.fa";"- strand genome.fa" 2 | 0,0;0,0;0,12|3,5 3 | 0,1;0,1;0,11 4 | 0,2;0,2;0,10 5 | 0,6;0,6|0,15; 6 | 0,9;0,9; 7 | 0,10;0,10;0,2 8 | 0,11;0,11;0,1 9 | 0,15;0,6|0,15; 10 | 3,5;0,12|3,5;0,0 11 | 3,6;3,6; 12 | 3,7;3,7; 13 | 3,8;3,8; 14 | -------------------------------------------------------------------------------- /tests/test_cases/case_2e/genome.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGACCAAAAGGT 3 | >seq1 4 | CCAA 5 | >seq2 6 | CCA 7 | >seq3 8 | AAGGTACCATTGG 9 | >seq4 10 | CCA 11 | -------------------------------------------------------------------------------- /tests/test_cases/case_2e/raw_freq16/genome.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_2e/raw_freq8/genome.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_2e/raw_map/genome.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_2e/raw_map/genome.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_2e/subset.bed: -------------------------------------------------------------------------------- 1 | seq0 0 3 2 | seq0 6 7 3 | seq0 9 12 4 | seq0 15 16 5 | seq1 1 3 6 | seq3 5 9 7 | seq4 1 2 8 | -------------------------------------------------------------------------------- /tests/test_cases/case_2e/txt_freq16/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 3 2 2 0 0 0 2 0 0 1 2 2 0 0 0 2 0 0 0 0 0 0 3 | >seq1 4 | 0 0 0 0 5 | >seq2 6 | 0 0 0 7 | >seq3 8 | 0 0 0 0 0 3 1 1 1 0 0 0 0 9 | >seq4 10 | 0 0 0 11 | -------------------------------------------------------------------------------- /tests/test_cases/case_2e/txt_map/genome.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.333333 0.5 0.5 0 0 0 0.5 0 0 1 0.5 0.5 0 0 0 0.5 0 0 0 0 0 0 3 | >seq1 4 | 0 0 0 0 5 | >seq2 6 | 0 0 0 7 | >seq3 8 | 0 0 0 0 0 0.333333 1 1 1 0 0 0 0 9 | >seq4 10 | 0 0 0 11 | -------------------------------------------------------------------------------- /tests/test_cases/case_2e/wig_freq16/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 4 3 | seq2 3 4 | seq3 13 5 | seq4 3 6 | -------------------------------------------------------------------------------- /tests/test_cases/case_2e/wig_freq16/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 3 3 | variableStep chrom=seq0 span=2 4 | 2 2 5 | variableStep chrom=seq0 span=1 6 | 7 2 7 | 10 1 8 | variableStep chrom=seq0 span=2 9 | 11 2 10 | variableStep chrom=seq0 span=1 11 | 16 2 12 | variableStep chrom=seq3 span=1 13 | 6 3 14 | variableStep chrom=seq3 span=3 15 | 7 1 16 | -------------------------------------------------------------------------------- /tests/test_cases/case_2e/wig_map/genome.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 4 3 | seq2 3 4 | seq3 13 5 | seq4 3 6 | -------------------------------------------------------------------------------- /tests/test_cases/case_2e/wig_map/genome.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 0.333333 3 | variableStep chrom=seq0 span=2 4 | 2 0.5 5 | variableStep chrom=seq0 span=1 6 | 7 0.5 7 | 10 1 8 | variableStep chrom=seq0 span=2 9 | 11 0.5 10 | variableStep chrom=seq0 span=1 11 | 16 0.5 12 | variableStep chrom=seq3 span=1 13 | 6 0.333333 14 | variableStep chrom=seq3 span=3 15 | 7 1 16 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/bed_freq16/genome1.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 3 2 | seq0 1 2 4 3 | seq0 2 4 3 4 | seq0 4 8 5 5 | seq0 8 9 6 6 | seq0 9 10 3 7 | seq0 10 12 2 8 | seq0 12 13 3 9 | seq0 13 17 5 10 | seq0 17 18 6 11 | seq0 18 19 3 12 | seq2 0 1 6 13 | seq2 1 2 3 14 | seq2 2 3 1 15 | seq2 3 4 2 16 | seq2 4 5 1 17 | seq2 5 6 3 18 | seq2 6 10 1 19 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/bed_freq16/genome2.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 3 2 | seq0 1 2 4 3 | seq0 2 4 3 4 | seq0 4 8 5 5 | seq0 8 9 6 6 | seq0 9 10 3 7 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/bed_freq16/genome3.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 3 2 | seq0 1 2 4 3 | seq0 2 4 3 4 | seq0 4 8 5 5 | seq0 8 9 6 6 | seq0 9 10 3 7 | seq0 10 12 2 8 | seq0 12 13 3 9 | seq0 13 17 5 10 | seq0 17 18 6 11 | seq0 18 19 3 12 | seq0 19 20 4 13 | seq0 20 22 1 14 | seq0 22 23 2 15 | seq1 0 3 1 16 | seq1 3 9 2 17 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/bed_map/genome1.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 0.333333 2 | seq0 1 2 0.25 3 | seq0 2 4 0.333333 4 | seq0 4 8 0.2 5 | seq0 8 9 0.166667 6 | seq0 9 10 0.333333 7 | seq0 10 12 0.5 8 | seq0 12 13 0.333333 9 | seq0 13 17 0.2 10 | seq0 17 18 0.166667 11 | seq0 18 19 0.333333 12 | seq2 0 1 0.166667 13 | seq2 1 2 0.333333 14 | seq2 2 3 1 15 | seq2 3 4 0.5 16 | seq2 4 5 1 17 | seq2 5 6 0.333333 18 | seq2 6 10 1 19 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/bed_map/genome2.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 0.333333 2 | seq0 1 2 0.25 3 | seq0 2 4 0.333333 4 | seq0 4 8 0.2 5 | seq0 8 9 0.166667 6 | seq0 9 10 0.333333 7 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/bed_map/genome3.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 1 0.333333 2 | seq0 1 2 0.25 3 | seq0 2 4 0.333333 4 | seq0 4 8 0.2 5 | seq0 8 9 0.166667 6 | seq0 9 10 0.333333 7 | seq0 10 12 0.5 8 | seq0 12 13 0.333333 9 | seq0 13 17 0.2 10 | seq0 17 18 0.166667 11 | seq0 18 19 0.333333 12 | seq0 19 20 0.25 13 | seq0 20 22 1 14 | seq0 22 23 0.5 15 | seq1 0 3 1 16 | seq1 3 9 0.5 17 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/csv/genome1.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome1.fa";"+ strand genome2.fa";"+ strand genome3.fa" 2 | 0,0;0,0;0,0;0,0 3 | 0,1;0,1;0,1;0,1|0,19 4 | 0,2;0,2;0,2;0,2 5 | 0,3;0,3;0,3;0,3 6 | 0,4;0,4|0,13;0,4;0,4|0,13 7 | 0,5;0,5|0,14;0,5;0,5|0,14 8 | 0,6;0,6|0,15;0,6;0,6|0,15 9 | 0,7;0,7|0,16;0,7;0,7|0,16 10 | 0,8;0,8|0,17|2,0;0,8;0,8|0,17 11 | 0,9;0,9;0,9;0,9 12 | 0,10;0,10;;0,10 13 | 0,11;0,11;;0,11 14 | 0,12;0,12|2,5;;0,12 15 | 0,13;0,4|0,13;0,4;0,4|0,13 16 | 0,14;0,5|0,14;0,5;0,5|0,14 17 | 0,15;0,6|0,15;0,6;0,6|0,15 18 | 0,16;0,7|0,16;0,7;0,7|0,16 19 | 0,17;0,8|0,17|2,0;0,8;0,8|0,17 20 | 0,18;0,18|2,1;;0,18 21 | 2,0;0,8|0,17|2,0;0,8;0,8|0,17 22 | 2,1;0,18|2,1;;0,18 23 | 2,2;2,2;; 24 | 2,3;2,3;;1,6 25 | 2,4;2,4;; 26 | 2,5;0,12|2,5;;0,12 27 | 2,6;2,6;; 28 | 2,7;2,7;; 29 | 2,8;2,8;; 30 | 2,9;2,9;; 31 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/csv/genome2.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome1.fa";"+ strand genome2.fa";"+ strand genome3.fa" 2 | 0,0;0,0;0,0;0,0 3 | 0,1;0,1;0,1;0,1|0,19 4 | 0,2;0,2;0,2;0,2 5 | 0,3;0,3;0,3;0,3 6 | 0,4;0,4|0,13;0,4;0,4|0,13 7 | 0,5;0,5|0,14;0,5;0,5|0,14 8 | 0,6;0,6|0,15;0,6;0,6|0,15 9 | 0,7;0,7|0,16;0,7;0,7|0,16 10 | 0,8;0,8|0,17|2,0;0,8;0,8|0,17 11 | 0,9;0,9;0,9;0,9 12 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/csv/genome3.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome1.fa";"+ strand genome2.fa";"+ strand genome3.fa" 2 | 0,0;0,0;0,0;0,0 3 | 0,1;0,1;0,1;0,1|0,19 4 | 0,2;0,2;0,2;0,2 5 | 0,3;0,3;0,3;0,3 6 | 0,4;0,4|0,13;0,4;0,4|0,13 7 | 0,5;0,5|0,14;0,5;0,5|0,14 8 | 0,6;0,6|0,15;0,6;0,6|0,15 9 | 0,7;0,7|0,16;0,7;0,7|0,16 10 | 0,8;0,8|0,17|2,0;0,8;0,8|0,17 11 | 0,9;0,9;0,9;0,9 12 | 0,10;0,10;;0,10 13 | 0,11;0,11;;0,11 14 | 0,12;0,12|2,5;;0,12 15 | 0,13;0,4|0,13;0,4;0,4|0,13 16 | 0,14;0,5|0,14;0,5;0,5|0,14 17 | 0,15;0,6|0,15;0,6;0,6|0,15 18 | 0,16;0,7|0,16;0,7;0,7|0,16 19 | 0,17;0,8|0,17|2,0;0,8;0,8|0,17 20 | 0,18;0,18|2,1;;0,18 21 | 0,19;0,1;0,1;0,1|0,19 22 | 0,20;;;0,20 23 | 0,21;;;0,21 24 | 0,22;;;0,22|1,5 25 | 1,0;;;1,0 26 | 1,1;;;1,1 27 | 1,2;;;1,2 28 | 1,3;;;1,3|1,7 29 | 1,4;;;1,4|1,8 30 | 1,5;;;0,22|1,5 31 | 1,6;2,3;;1,6 32 | 1,7;;;1,3|1,7 33 | 1,8;;;1,4|1,8 34 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/genome1.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGACCAAAAGGT 3 | >seq1 4 | CCA 5 | >seq2 6 | AAGGTACCATTGG 7 | >seq3 8 | CCA 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/genome2.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGA 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/genome3.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGACCAAAAGGTCGTA 3 | >seq1 4 | TTTTACGTACGT 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/raw_freq16/genome1.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3a/raw_freq16/genome2.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3a/raw_freq16/genome3.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3a/raw_freq8/genome1.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3a/raw_freq8/genome2.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3a/raw_freq8/genome3.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3a/raw_map/genome1.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_3a/raw_map/genome1.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_3a/raw_map/genome2.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_3a/raw_map/genome2.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_3a/raw_map/genome3.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_3a/raw_map/genome3.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_3a/txt_freq16/genome1.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 3 4 3 3 5 5 5 5 6 3 2 2 3 5 5 5 5 6 3 0 0 0 3 | >seq1 4 | 0 0 0 5 | >seq2 6 | 6 3 1 2 1 3 1 1 1 1 0 0 0 7 | >seq3 8 | 0 0 0 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/txt_freq16/genome2.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 3 4 3 3 5 5 5 5 6 3 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/txt_freq16/genome3.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 3 4 3 3 5 5 5 5 6 3 2 2 3 5 5 5 5 6 3 4 1 1 2 0 0 0 3 | >seq1 4 | 1 1 1 2 2 2 2 2 2 0 0 0 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/txt_map/genome1.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.333333 0.25 0.333333 0.333333 0.2 0.2 0.2 0.2 0.166667 0.333333 0.5 0.5 0.333333 0.2 0.2 0.2 0.2 0.166667 0.333333 0 0 0 3 | >seq1 4 | 0 0 0 5 | >seq2 6 | 0.166667 0.333333 1 0.5 1 0.333333 1 1 1 1 0 0 0 7 | >seq3 8 | 0 0 0 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/txt_map/genome2.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.333333 0.25 0.333333 0.333333 0.2 0.2 0.2 0.2 0.166667 0.333333 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/txt_map/genome3.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.333333 0.25 0.333333 0.333333 0.2 0.2 0.2 0.2 0.166667 0.333333 0.5 0.5 0.333333 0.2 0.2 0.2 0.2 0.166667 0.333333 0.25 1 1 0.5 0 0 0 3 | >seq1 4 | 1 1 1 0.5 0.5 0.5 0.5 0.5 0.5 0 0 0 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/wig_freq16/genome1.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 3 3 | seq2 13 4 | seq3 3 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/wig_freq16/genome1.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 3 3 | 2 4 4 | variableStep chrom=seq0 span=2 5 | 3 3 6 | variableStep chrom=seq0 span=4 7 | 5 5 8 | variableStep chrom=seq0 span=1 9 | 9 6 10 | 10 3 11 | variableStep chrom=seq0 span=2 12 | 11 2 13 | variableStep chrom=seq0 span=1 14 | 13 3 15 | variableStep chrom=seq0 span=4 16 | 14 5 17 | variableStep chrom=seq0 span=1 18 | 18 6 19 | 19 3 20 | variableStep chrom=seq2 span=1 21 | 1 6 22 | 2 3 23 | 3 1 24 | 4 2 25 | 5 1 26 | 6 3 27 | variableStep chrom=seq2 span=4 28 | 7 1 29 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/wig_freq16/genome2.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 13 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/wig_freq16/genome2.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 3 3 | 2 4 4 | variableStep chrom=seq0 span=2 5 | 3 3 6 | variableStep chrom=seq0 span=4 7 | 5 5 8 | variableStep chrom=seq0 span=1 9 | 9 6 10 | 10 3 11 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/wig_freq16/genome3.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 26 2 | seq1 12 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/wig_freq16/genome3.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 3 3 | 2 4 4 | variableStep chrom=seq0 span=2 5 | 3 3 6 | variableStep chrom=seq0 span=4 7 | 5 5 8 | variableStep chrom=seq0 span=1 9 | 9 6 10 | 10 3 11 | variableStep chrom=seq0 span=2 12 | 11 2 13 | variableStep chrom=seq0 span=1 14 | 13 3 15 | variableStep chrom=seq0 span=4 16 | 14 5 17 | variableStep chrom=seq0 span=1 18 | 18 6 19 | 19 3 20 | 20 4 21 | variableStep chrom=seq0 span=2 22 | 21 1 23 | variableStep chrom=seq0 span=1 24 | 23 2 25 | variableStep chrom=seq1 span=3 26 | 1 1 27 | variableStep chrom=seq1 span=6 28 | 4 2 29 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/wig_map/genome1.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 3 3 | seq2 13 4 | seq3 3 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/wig_map/genome1.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 0.333333 3 | 2 0.25 4 | variableStep chrom=seq0 span=2 5 | 3 0.333333 6 | variableStep chrom=seq0 span=4 7 | 5 0.2 8 | variableStep chrom=seq0 span=1 9 | 9 0.166667 10 | 10 0.333333 11 | variableStep chrom=seq0 span=2 12 | 11 0.5 13 | variableStep chrom=seq0 span=1 14 | 13 0.333333 15 | variableStep chrom=seq0 span=4 16 | 14 0.2 17 | variableStep chrom=seq0 span=1 18 | 18 0.166667 19 | 19 0.333333 20 | variableStep chrom=seq2 span=1 21 | 1 0.166667 22 | 2 0.333333 23 | 3 1 24 | 4 0.5 25 | 5 1 26 | 6 0.333333 27 | variableStep chrom=seq2 span=4 28 | 7 1 29 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/wig_map/genome2.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 13 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/wig_map/genome2.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 0.333333 3 | 2 0.25 4 | variableStep chrom=seq0 span=2 5 | 3 0.333333 6 | variableStep chrom=seq0 span=4 7 | 5 0.2 8 | variableStep chrom=seq0 span=1 9 | 9 0.166667 10 | 10 0.333333 11 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/wig_map/genome3.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 26 2 | seq1 12 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3a/wig_map/genome3.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=1 2 | 1 0.333333 3 | 2 0.25 4 | variableStep chrom=seq0 span=2 5 | 3 0.333333 6 | variableStep chrom=seq0 span=4 7 | 5 0.2 8 | variableStep chrom=seq0 span=1 9 | 9 0.166667 10 | 10 0.333333 11 | variableStep chrom=seq0 span=2 12 | 11 0.5 13 | variableStep chrom=seq0 span=1 14 | 13 0.333333 15 | variableStep chrom=seq0 span=4 16 | 14 0.2 17 | variableStep chrom=seq0 span=1 18 | 18 0.166667 19 | 19 0.333333 20 | 20 0.25 21 | variableStep chrom=seq0 span=2 22 | 21 1 23 | variableStep chrom=seq0 span=1 24 | 23 0.5 25 | variableStep chrom=seq1 span=3 26 | 1 1 27 | variableStep chrom=seq1 span=6 28 | 4 0.5 29 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/bed_freq16/genome1.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 2 6 2 | seq0 2 3 5 3 | seq0 3 4 3 4 | seq0 4 5 6 5 | seq0 5 6 5 6 | seq0 6 7 6 7 | seq0 7 8 5 8 | seq0 8 9 6 9 | seq0 9 10 3 10 | seq0 10 11 5 11 | seq0 11 14 6 12 | seq0 14 15 5 13 | seq0 15 16 6 14 | seq0 16 17 5 15 | seq0 17 18 6 16 | seq0 18 19 3 17 | seq2 0 1 6 18 | seq2 1 2 3 19 | seq2 2 3 2 20 | seq2 3 4 4 21 | seq2 4 5 2 22 | seq2 5 6 6 23 | seq2 6 9 1 24 | seq2 9 10 6 25 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/bed_freq16/genome2.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 2 6 2 | seq0 2 3 5 3 | seq0 3 4 3 4 | seq0 4 5 6 5 | seq0 5 6 5 6 | seq0 6 7 6 7 | seq0 7 8 5 8 | seq0 8 9 6 9 | seq0 9 10 3 10 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/bed_freq16/genome3.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 2 6 2 | seq0 2 3 5 3 | seq0 3 4 3 4 | seq0 4 5 6 5 | seq0 5 6 5 6 | seq0 6 7 6 7 | seq0 7 8 5 8 | seq0 8 9 6 9 | seq0 9 10 3 10 | seq0 10 11 5 11 | seq0 11 14 6 12 | seq0 14 15 5 13 | seq0 15 16 6 14 | seq0 16 17 5 15 | seq0 17 18 6 16 | seq0 18 19 3 17 | seq0 19 20 6 18 | seq0 20 22 1 19 | seq0 22 23 4 20 | seq1 0 1 6 21 | seq1 1 3 1 22 | seq1 3 9 4 23 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/bed_map/genome1.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 2 0.166667 2 | seq0 2 3 0.2 3 | seq0 3 4 0.333333 4 | seq0 4 5 0.166667 5 | seq0 5 6 0.2 6 | seq0 6 7 0.166667 7 | seq0 7 8 0.2 8 | seq0 8 9 0.166667 9 | seq0 9 10 0.333333 10 | seq0 10 11 0.2 11 | seq0 11 14 0.166667 12 | seq0 14 15 0.2 13 | seq0 15 16 0.166667 14 | seq0 16 17 0.2 15 | seq0 17 18 0.166667 16 | seq0 18 19 0.333333 17 | seq2 0 1 0.166667 18 | seq2 1 2 0.333333 19 | seq2 2 3 0.5 20 | seq2 3 4 0.25 21 | seq2 4 5 0.5 22 | seq2 5 6 0.166667 23 | seq2 6 9 1 24 | seq2 9 10 0.166667 25 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/bed_map/genome2.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 2 0.166667 2 | seq0 2 3 0.2 3 | seq0 3 4 0.333333 4 | seq0 4 5 0.166667 5 | seq0 5 6 0.2 6 | seq0 6 7 0.166667 7 | seq0 7 8 0.2 8 | seq0 8 9 0.166667 9 | seq0 9 10 0.333333 10 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/bed_map/genome3.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 2 0.166667 2 | seq0 2 3 0.2 3 | seq0 3 4 0.333333 4 | seq0 4 5 0.166667 5 | seq0 5 6 0.2 6 | seq0 6 7 0.166667 7 | seq0 7 8 0.2 8 | seq0 8 9 0.166667 9 | seq0 9 10 0.333333 10 | seq0 10 11 0.2 11 | seq0 11 14 0.166667 12 | seq0 14 15 0.2 13 | seq0 15 16 0.166667 14 | seq0 16 17 0.2 15 | seq0 17 18 0.166667 16 | seq0 18 19 0.333333 17 | seq0 19 20 0.166667 18 | seq0 20 22 1 19 | seq0 22 23 0.25 20 | seq1 0 1 0.166667 21 | seq1 1 3 1 22 | seq1 3 9 0.25 23 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/csv/genome1.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome1.fa";"+ strand genome2.fa";"+ strand genome3.fa";"- strand genome1.fa";"- strand genome2.fa";"- strand genome3.fa" 2 | 0,0;0,0;0,0;0,0;0,12|2,5;;0,12 3 | 0,1;0,1;0,1;0,1|0,19;0,11;;0,11 4 | 0,2;0,2;0,2;0,2;0,10;;0,10 5 | 0,3;0,3;0,3;0,3;;; 6 | 0,4;0,4|0,13;0,4;0,4|0,13;2,9;; 7 | 0,5;0,5|0,14;0,5;0,5|0,14;;; 8 | 0,6;0,6|0,15;0,6;0,6|0,15;;;1,0 9 | 0,7;0,7|0,16;0,7;0,7|0,16;;; 10 | 0,8;0,8|0,17|2,0;0,8;0,8|0,17;;; 11 | 0,9;0,9;0,9;0,9;;; 12 | 0,10;0,10;;0,10;0,2;0,2;0,2 13 | 0,11;0,11;;0,11;0,1;0,1;0,1|0,19 14 | 0,12;0,12|2,5;;0,12;0,0;0,0;0,0 15 | 0,13;0,4|0,13;0,4;0,4|0,13;2,9;; 16 | 0,14;0,5|0,14;0,5;0,5|0,14;;; 17 | 0,15;0,6|0,15;0,6;0,6|0,15;;;1,0 18 | 0,16;0,7|0,16;0,7;0,7|0,16;;; 19 | 0,17;0,8|0,17|2,0;0,8;0,8|0,17;;; 20 | 0,18;0,18|2,1;;0,18;;; 21 | 2,0;0,8|0,17|2,0;0,8;0,8|0,17;;; 22 | 2,1;0,18|2,1;;0,18;;; 23 | 2,2;2,2;;;2,4;; 24 | 2,3;2,3;;1,6;2,3;;1,6 25 | 2,4;2,4;;;2,2;; 26 | 2,5;0,12|2,5;;0,12;0,0;0,0;0,0 27 | 2,6;2,6;;;;; 28 | 2,7;2,7;;;;; 29 | 2,8;2,8;;;;; 30 | 2,9;2,9;;;0,4|0,13;0,4;0,4|0,13 31 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/csv/genome2.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome1.fa";"+ strand genome2.fa";"+ strand genome3.fa";"- strand genome1.fa";"- strand genome2.fa";"- strand genome3.fa" 2 | 0,0;0,0;0,0;0,0;0,12|2,5;;0,12 3 | 0,1;0,1;0,1;0,1|0,19;0,11;;0,11 4 | 0,2;0,2;0,2;0,2;0,10;;0,10 5 | 0,3;0,3;0,3;0,3;;; 6 | 0,4;0,4|0,13;0,4;0,4|0,13;2,9;; 7 | 0,5;0,5|0,14;0,5;0,5|0,14;;; 8 | 0,6;0,6|0,15;0,6;0,6|0,15;;;1,0 9 | 0,7;0,7|0,16;0,7;0,7|0,16;;; 10 | 0,8;0,8|0,17|2,0;0,8;0,8|0,17;;; 11 | 0,9;0,9;0,9;0,9;;; 12 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/csv/genome3.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome1.fa";"+ strand genome2.fa";"+ strand genome3.fa";"- strand genome1.fa";"- strand genome2.fa";"- strand genome3.fa" 2 | 0,0;0,0;0,0;0,0;0,12|2,5;;0,12 3 | 0,1;0,1;0,1;0,1|0,19;0,11;;0,11 4 | 0,2;0,2;0,2;0,2;0,10;;0,10 5 | 0,3;0,3;0,3;0,3;;; 6 | 0,4;0,4|0,13;0,4;0,4|0,13;2,9;; 7 | 0,5;0,5|0,14;0,5;0,5|0,14;;; 8 | 0,6;0,6|0,15;0,6;0,6|0,15;;;1,0 9 | 0,7;0,7|0,16;0,7;0,7|0,16;;; 10 | 0,8;0,8|0,17|2,0;0,8;0,8|0,17;;; 11 | 0,9;0,9;0,9;0,9;;; 12 | 0,10;0,10;;0,10;0,2;0,2;0,2 13 | 0,11;0,11;;0,11;0,1;0,1;0,1|0,19 14 | 0,12;0,12|2,5;;0,12;0,0;0,0;0,0 15 | 0,13;0,4|0,13;0,4;0,4|0,13;2,9;; 16 | 0,14;0,5|0,14;0,5;0,5|0,14;;; 17 | 0,15;0,6|0,15;0,6;0,6|0,15;;;1,0 18 | 0,16;0,7|0,16;0,7;0,7|0,16;;; 19 | 0,17;0,8|0,17|2,0;0,8;0,8|0,17;;; 20 | 0,18;0,18|2,1;;0,18;;; 21 | 0,19;0,1;0,1;0,1|0,19;0,11;;0,11 22 | 0,20;;;0,20;;; 23 | 0,21;;;0,21;;; 24 | 0,22;;;0,22|1,5;;;1,3|1,7 25 | 1,0;;;1,0;0,6|0,15;0,6;0,6|0,15 26 | 1,1;;;1,1;;; 27 | 1,2;;;1,2;;; 28 | 1,3;;;1,3|1,7;;;0,22|1,5 29 | 1,4;;;1,4|1,8;;;1,4|1,8 30 | 1,5;;;0,22|1,5;;;1,3|1,7 31 | 1,6;2,3;;1,6;2,3;;1,6 32 | 1,7;;;1,3|1,7;;;0,22|1,5 33 | 1,8;;;1,4|1,8;;;1,4|1,8 34 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/genome1.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGACCAAAAGGT 3 | >seq1 4 | CCA 5 | >seq2 6 | AAGGTACCATTGG 7 | >seq3 8 | CCA 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/genome2.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGA 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/genome3.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGACCAAAAGGTCGTA 3 | >seq1 4 | TTTTACGTACGT 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/raw_freq16/genome1.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3b/raw_freq16/genome2.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3b/raw_freq16/genome3.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3b/raw_freq8/genome1.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3b/raw_freq8/genome2.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3b/raw_freq8/genome3.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3b/raw_map/genome1.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_3b/raw_map/genome1.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_3b/raw_map/genome2.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_3b/raw_map/genome2.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_3b/raw_map/genome3.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_3b/raw_map/genome3.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_3b/txt_freq16/genome1.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 6 6 5 3 6 5 6 5 6 3 5 6 6 6 5 6 5 6 3 0 0 0 3 | >seq1 4 | 0 0 0 5 | >seq2 6 | 6 3 2 4 2 6 1 1 1 6 0 0 0 7 | >seq3 8 | 0 0 0 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/txt_freq16/genome2.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 6 6 5 3 6 5 6 5 6 3 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/txt_freq16/genome3.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 6 6 5 3 6 5 6 5 6 3 5 6 6 6 5 6 5 6 3 6 1 1 4 0 0 0 3 | >seq1 4 | 6 1 1 4 4 4 4 4 4 0 0 0 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/txt_map/genome1.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.166667 0.166667 0.2 0.333333 0.166667 0.2 0.166667 0.2 0.166667 0.333333 0.2 0.166667 0.166667 0.166667 0.2 0.166667 0.2 0.166667 0.333333 0 0 0 3 | >seq1 4 | 0 0 0 5 | >seq2 6 | 0.166667 0.333333 0.5 0.25 0.5 0.166667 1 1 1 0.166667 0 0 0 7 | >seq3 8 | 0 0 0 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/txt_map/genome2.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.166667 0.166667 0.2 0.333333 0.166667 0.2 0.166667 0.2 0.166667 0.333333 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/txt_map/genome3.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.166667 0.166667 0.2 0.333333 0.166667 0.2 0.166667 0.2 0.166667 0.333333 0.2 0.166667 0.166667 0.166667 0.2 0.166667 0.2 0.166667 0.333333 0.166667 1 1 0.25 0 0 0 3 | >seq1 4 | 0.166667 1 1 0.25 0.25 0.25 0.25 0.25 0.25 0 0 0 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/wig_freq16/genome1.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 3 3 | seq2 13 4 | seq3 3 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/wig_freq16/genome1.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=2 2 | 1 6 3 | variableStep chrom=seq0 span=1 4 | 3 5 5 | 4 3 6 | 5 6 7 | 6 5 8 | 7 6 9 | 8 5 10 | 9 6 11 | 10 3 12 | 11 5 13 | variableStep chrom=seq0 span=3 14 | 12 6 15 | variableStep chrom=seq0 span=1 16 | 15 5 17 | 16 6 18 | 17 5 19 | 18 6 20 | 19 3 21 | variableStep chrom=seq2 span=1 22 | 1 6 23 | 2 3 24 | 3 2 25 | 4 4 26 | 5 2 27 | 6 6 28 | variableStep chrom=seq2 span=3 29 | 7 1 30 | variableStep chrom=seq2 span=1 31 | 10 6 32 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/wig_freq16/genome2.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 13 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/wig_freq16/genome2.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=2 2 | 1 6 3 | variableStep chrom=seq0 span=1 4 | 3 5 5 | 4 3 6 | 5 6 7 | 6 5 8 | 7 6 9 | 8 5 10 | 9 6 11 | 10 3 12 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/wig_freq16/genome3.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 26 2 | seq1 12 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/wig_freq16/genome3.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=2 2 | 1 6 3 | variableStep chrom=seq0 span=1 4 | 3 5 5 | 4 3 6 | 5 6 7 | 6 5 8 | 7 6 9 | 8 5 10 | 9 6 11 | 10 3 12 | 11 5 13 | variableStep chrom=seq0 span=3 14 | 12 6 15 | variableStep chrom=seq0 span=1 16 | 15 5 17 | 16 6 18 | 17 5 19 | 18 6 20 | 19 3 21 | 20 6 22 | variableStep chrom=seq0 span=2 23 | 21 1 24 | variableStep chrom=seq0 span=1 25 | 23 4 26 | variableStep chrom=seq1 span=1 27 | 1 6 28 | variableStep chrom=seq1 span=2 29 | 2 1 30 | variableStep chrom=seq1 span=6 31 | 4 4 32 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/wig_map/genome1.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 3 3 | seq2 13 4 | seq3 3 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/wig_map/genome1.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=2 2 | 1 0.166667 3 | variableStep chrom=seq0 span=1 4 | 3 0.2 5 | 4 0.333333 6 | 5 0.166667 7 | 6 0.2 8 | 7 0.166667 9 | 8 0.2 10 | 9 0.166667 11 | 10 0.333333 12 | 11 0.2 13 | variableStep chrom=seq0 span=3 14 | 12 0.166667 15 | variableStep chrom=seq0 span=1 16 | 15 0.2 17 | 16 0.166667 18 | 17 0.2 19 | 18 0.166667 20 | 19 0.333333 21 | variableStep chrom=seq2 span=1 22 | 1 0.166667 23 | 2 0.333333 24 | 3 0.5 25 | 4 0.25 26 | 5 0.5 27 | 6 0.166667 28 | variableStep chrom=seq2 span=3 29 | 7 1 30 | variableStep chrom=seq2 span=1 31 | 10 0.166667 32 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/wig_map/genome2.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 13 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/wig_map/genome2.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=2 2 | 1 0.166667 3 | variableStep chrom=seq0 span=1 4 | 3 0.2 5 | 4 0.333333 6 | 5 0.166667 7 | 6 0.2 8 | 7 0.166667 9 | 8 0.2 10 | 9 0.166667 11 | 10 0.333333 12 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/wig_map/genome3.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 26 2 | seq1 12 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3b/wig_map/genome3.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=2 2 | 1 0.166667 3 | variableStep chrom=seq0 span=1 4 | 3 0.2 5 | 4 0.333333 6 | 5 0.166667 7 | 6 0.2 8 | 7 0.166667 9 | 8 0.2 10 | 9 0.166667 11 | 10 0.333333 12 | 11 0.2 13 | variableStep chrom=seq0 span=3 14 | 12 0.166667 15 | variableStep chrom=seq0 span=1 16 | 15 0.2 17 | 16 0.166667 18 | 17 0.2 19 | 18 0.166667 20 | 19 0.333333 21 | 20 0.166667 22 | variableStep chrom=seq0 span=2 23 | 21 1 24 | variableStep chrom=seq0 span=1 25 | 23 0.25 26 | variableStep chrom=seq1 span=1 27 | 1 0.166667 28 | variableStep chrom=seq1 span=2 29 | 2 1 30 | variableStep chrom=seq1 span=6 31 | 4 0.25 32 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/bed_freq16/genome1.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 10 3 2 | seq0 10 13 2 3 | seq0 13 18 3 4 | seq0 18 19 2 5 | seq2 0 1 3 6 | seq2 1 2 2 7 | seq2 2 3 1 8 | seq2 3 4 2 9 | seq2 4 5 1 10 | seq2 5 6 2 11 | seq2 6 10 1 12 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/bed_freq16/genome2.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 10 3 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/bed_freq16/genome3.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 10 3 2 | seq0 10 13 2 3 | seq0 13 18 3 4 | seq0 18 19 2 5 | seq0 19 20 3 6 | seq0 20 23 1 7 | seq1 0 6 1 8 | seq1 6 7 2 9 | seq1 7 9 1 10 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/bed_map/genome1.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 10 0.333333 2 | seq0 10 13 0.5 3 | seq0 13 18 0.333333 4 | seq0 18 19 0.5 5 | seq2 0 1 0.333333 6 | seq2 1 2 0.5 7 | seq2 2 3 1 8 | seq2 3 4 0.5 9 | seq2 4 5 1 10 | seq2 5 6 0.5 11 | seq2 6 10 1 12 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/bed_map/genome2.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 10 0.333333 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/bed_map/genome3.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 10 0.333333 2 | seq0 10 13 0.5 3 | seq0 13 18 0.333333 4 | seq0 18 19 0.5 5 | seq0 19 20 0.333333 6 | seq0 20 23 1 7 | seq1 0 6 1 8 | seq1 6 7 0.5 9 | seq1 7 9 1 10 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/csv/genome1.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome1.fa";"+ strand genome2.fa";"+ strand genome3.fa" 2 | 0,0;0,0;0,0;0,0 3 | 0,1;0,1;0,1;0,1|0,19 4 | 0,2;0,2;0,2;0,2 5 | 0,3;0,3;0,3;0,3 6 | 0,4;0,4|0,13;0,4;0,4|0,13 7 | 0,5;0,5|0,14;0,5;0,5|0,14 8 | 0,6;0,6|0,15;0,6;0,6|0,15 9 | 0,7;0,7|0,16;0,7;0,7|0,16 10 | 0,8;0,8|0,17|2,0;0,8;0,8|0,17 11 | 0,9;0,9;0,9;0,9 12 | 0,10;0,10;;0,10 13 | 0,11;0,11;;0,11 14 | 0,12;0,12|2,5;;0,12 15 | 0,13;0,4|0,13;0,4;0,4|0,13 16 | 0,14;0,5|0,14;0,5;0,5|0,14 17 | 0,15;0,6|0,15;0,6;0,6|0,15 18 | 0,16;0,7|0,16;0,7;0,7|0,16 19 | 0,17;0,8|0,17|2,0;0,8;0,8|0,17 20 | 0,18;0,18|2,1;;0,18 21 | 2,0;0,8|0,17|2,0;0,8;0,8|0,17 22 | 2,1;0,18|2,1;;0,18 23 | 2,2;2,2;; 24 | 2,3;2,3;;1,6 25 | 2,4;2,4;; 26 | 2,5;0,12|2,5;;0,12 27 | 2,6;2,6;; 28 | 2,7;2,7;; 29 | 2,8;2,8;; 30 | 2,9;2,9;; 31 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/csv/genome2.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome1.fa";"+ strand genome2.fa";"+ strand genome3.fa" 2 | 0,0;0,0;0,0;0,0 3 | 0,1;0,1;0,1;0,1|0,19 4 | 0,2;0,2;0,2;0,2 5 | 0,3;0,3;0,3;0,3 6 | 0,4;0,4|0,13;0,4;0,4|0,13 7 | 0,5;0,5|0,14;0,5;0,5|0,14 8 | 0,6;0,6|0,15;0,6;0,6|0,15 9 | 0,7;0,7|0,16;0,7;0,7|0,16 10 | 0,8;0,8|0,17|2,0;0,8;0,8|0,17 11 | 0,9;0,9;0,9;0,9 12 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/csv/genome3.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome1.fa";"+ strand genome2.fa";"+ strand genome3.fa" 2 | 0,0;0,0;0,0;0,0 3 | 0,1;0,1;0,1;0,1|0,19 4 | 0,2;0,2;0,2;0,2 5 | 0,3;0,3;0,3;0,3 6 | 0,4;0,4|0,13;0,4;0,4|0,13 7 | 0,5;0,5|0,14;0,5;0,5|0,14 8 | 0,6;0,6|0,15;0,6;0,6|0,15 9 | 0,7;0,7|0,16;0,7;0,7|0,16 10 | 0,8;0,8|0,17|2,0;0,8;0,8|0,17 11 | 0,9;0,9;0,9;0,9 12 | 0,10;0,10;;0,10 13 | 0,11;0,11;;0,11 14 | 0,12;0,12|2,5;;0,12 15 | 0,13;0,4|0,13;0,4;0,4|0,13 16 | 0,14;0,5|0,14;0,5;0,5|0,14 17 | 0,15;0,6|0,15;0,6;0,6|0,15 18 | 0,16;0,7|0,16;0,7;0,7|0,16 19 | 0,17;0,8|0,17|2,0;0,8;0,8|0,17 20 | 0,18;0,18|2,1;;0,18 21 | 0,19;0,1;0,1;0,1|0,19 22 | 0,20;;;0,20 23 | 0,21;;;0,21 24 | 0,22;;;0,22|1,5 25 | 1,0;;;1,0 26 | 1,1;;;1,1 27 | 1,2;;;1,2 28 | 1,3;;;1,3|1,7 29 | 1,4;;;1,4|1,8 30 | 1,5;;;0,22|1,5 31 | 1,6;2,3;;1,6 32 | 1,7;;;1,3|1,7 33 | 1,8;;;1,4|1,8 34 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/genome1.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGACCAAAAGGT 3 | >seq1 4 | CCA 5 | >seq2 6 | AAGGTACCATTGG 7 | >seq3 8 | CCA 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/genome2.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGA 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/genome3.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGACCAAAAGGTCGTA 3 | >seq1 4 | TTTTACGTACGT 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/raw_freq16/genome1.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3c/raw_freq16/genome2.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3c/raw_freq16/genome3.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3c/raw_freq8/genome1.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3c/raw_freq8/genome2.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3c/raw_freq8/genome3.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3c/raw_map/genome1.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_3c/raw_map/genome1.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_3c/raw_map/genome2.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_3c/raw_map/genome2.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_3c/raw_map/genome3.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_3c/raw_map/genome3.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_3c/txt_freq16/genome1.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 3 3 3 3 3 3 3 3 3 3 2 2 2 3 3 3 3 3 2 0 0 0 3 | >seq1 4 | 0 0 0 5 | >seq2 6 | 3 2 1 2 1 2 1 1 1 1 0 0 0 7 | >seq3 8 | 0 0 0 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/txt_freq16/genome2.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 3 3 3 3 3 3 3 3 3 3 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/txt_freq16/genome3.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 3 3 3 3 3 3 3 3 3 3 2 2 2 3 3 3 3 3 2 3 1 1 1 0 0 0 3 | >seq1 4 | 1 1 1 1 1 1 2 1 1 0 0 0 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/txt_map/genome1.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.5 0.5 0.5 0.333333 0.333333 0.333333 0.333333 0.333333 0.5 0 0 0 3 | >seq1 4 | 0 0 0 5 | >seq2 6 | 0.333333 0.5 1 0.5 1 0.5 1 1 1 1 0 0 0 7 | >seq3 8 | 0 0 0 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/txt_map/genome2.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/txt_map/genome3.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.5 0.5 0.5 0.333333 0.333333 0.333333 0.333333 0.333333 0.5 0.333333 1 1 1 0 0 0 3 | >seq1 4 | 1 1 1 1 1 1 0.5 1 1 0 0 0 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/wig_freq16/genome1.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 3 3 | seq2 13 4 | seq3 3 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/wig_freq16/genome1.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=10 2 | 1 3 3 | variableStep chrom=seq0 span=3 4 | 11 2 5 | variableStep chrom=seq0 span=5 6 | 14 3 7 | variableStep chrom=seq0 span=1 8 | 19 2 9 | variableStep chrom=seq2 span=1 10 | 1 3 11 | 2 2 12 | 3 1 13 | 4 2 14 | 5 1 15 | 6 2 16 | variableStep chrom=seq2 span=4 17 | 7 1 18 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/wig_freq16/genome2.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 13 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/wig_freq16/genome2.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=10 2 | 1 3 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/wig_freq16/genome3.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 26 2 | seq1 12 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/wig_freq16/genome3.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=10 2 | 1 3 3 | variableStep chrom=seq0 span=3 4 | 11 2 5 | variableStep chrom=seq0 span=5 6 | 14 3 7 | variableStep chrom=seq0 span=1 8 | 19 2 9 | 20 3 10 | variableStep chrom=seq0 span=3 11 | 21 1 12 | variableStep chrom=seq1 span=6 13 | 1 1 14 | variableStep chrom=seq1 span=1 15 | 7 2 16 | variableStep chrom=seq1 span=2 17 | 8 1 18 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/wig_map/genome1.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 3 3 | seq2 13 4 | seq3 3 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/wig_map/genome1.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=10 2 | 1 0.333333 3 | variableStep chrom=seq0 span=3 4 | 11 0.5 5 | variableStep chrom=seq0 span=5 6 | 14 0.333333 7 | variableStep chrom=seq0 span=1 8 | 19 0.5 9 | variableStep chrom=seq2 span=1 10 | 1 0.333333 11 | 2 0.5 12 | 3 1 13 | 4 0.5 14 | 5 1 15 | 6 0.5 16 | variableStep chrom=seq2 span=4 17 | 7 1 18 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/wig_map/genome2.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 13 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/wig_map/genome2.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=10 2 | 1 0.333333 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/wig_map/genome3.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 26 2 | seq1 12 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3c/wig_map/genome3.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=10 2 | 1 0.333333 3 | variableStep chrom=seq0 span=3 4 | 11 0.5 5 | variableStep chrom=seq0 span=5 6 | 14 0.333333 7 | variableStep chrom=seq0 span=1 8 | 19 0.5 9 | 20 0.333333 10 | variableStep chrom=seq0 span=3 11 | 21 1 12 | variableStep chrom=seq1 span=6 13 | 1 1 14 | variableStep chrom=seq1 span=1 15 | 7 0.5 16 | variableStep chrom=seq1 span=2 17 | 8 1 18 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/bed_freq16/genome1.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 18 3 2 | seq0 18 19 2 3 | seq2 0 1 3 4 | seq2 1 2 2 5 | seq2 2 3 1 6 | seq2 3 4 2 7 | seq2 4 5 1 8 | seq2 5 6 3 9 | seq2 6 9 1 10 | seq2 9 10 3 11 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/bed_freq16/genome2.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 10 3 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/bed_freq16/genome3.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 18 3 2 | seq0 18 19 2 3 | seq0 19 20 3 4 | seq0 20 23 1 5 | seq1 0 1 3 6 | seq1 1 6 1 7 | seq1 6 7 2 8 | seq1 7 9 1 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/bed_map/genome1.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 18 0.333333 2 | seq0 18 19 0.5 3 | seq2 0 1 0.333333 4 | seq2 1 2 0.5 5 | seq2 2 3 1 6 | seq2 3 4 0.5 7 | seq2 4 5 1 8 | seq2 5 6 0.333333 9 | seq2 6 9 1 10 | seq2 9 10 0.333333 11 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/bed_map/genome2.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 10 0.333333 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/bed_map/genome3.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 18 0.333333 2 | seq0 18 19 0.5 3 | seq0 19 20 0.333333 4 | seq0 20 23 1 5 | seq1 0 1 0.333333 6 | seq1 1 6 1 7 | seq1 6 7 0.5 8 | seq1 7 9 1 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/csv/genome1.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome1.fa";"+ strand genome2.fa";"+ strand genome3.fa";"- strand genome1.fa";"- strand genome2.fa";"- strand genome3.fa" 2 | 0,0;0,0;0,0;0,0;0,12|2,5;;0,12 3 | 0,1;0,1;0,1;0,1|0,19;0,11;;0,11 4 | 0,2;0,2;0,2;0,2;0,10;;0,10 5 | 0,3;0,3;0,3;0,3;;; 6 | 0,4;0,4|0,13;0,4;0,4|0,13;2,9;; 7 | 0,5;0,5|0,14;0,5;0,5|0,14;;; 8 | 0,6;0,6|0,15;0,6;0,6|0,15;;;1,0 9 | 0,7;0,7|0,16;0,7;0,7|0,16;;; 10 | 0,8;0,8|0,17|2,0;0,8;0,8|0,17;;; 11 | 0,9;0,9;0,9;0,9;;; 12 | 0,10;0,10;;0,10;0,2;0,2;0,2 13 | 0,11;0,11;;0,11;0,1;0,1;0,1|0,19 14 | 0,12;0,12|2,5;;0,12;0,0;0,0;0,0 15 | 0,13;0,4|0,13;0,4;0,4|0,13;2,9;; 16 | 0,14;0,5|0,14;0,5;0,5|0,14;;; 17 | 0,15;0,6|0,15;0,6;0,6|0,15;;;1,0 18 | 0,16;0,7|0,16;0,7;0,7|0,16;;; 19 | 0,17;0,8|0,17|2,0;0,8;0,8|0,17;;; 20 | 0,18;0,18|2,1;;0,18;;; 21 | 2,0;0,8|0,17|2,0;0,8;0,8|0,17;;; 22 | 2,1;0,18|2,1;;0,18;;; 23 | 2,2;2,2;;;2,4;; 24 | 2,3;2,3;;1,6;2,3;;1,6 25 | 2,4;2,4;;;2,2;; 26 | 2,5;0,12|2,5;;0,12;0,0;0,0;0,0 27 | 2,6;2,6;;;;; 28 | 2,7;2,7;;;;; 29 | 2,8;2,8;;;;; 30 | 2,9;2,9;;;0,4|0,13;0,4;0,4|0,13 31 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/csv/genome2.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome1.fa";"+ strand genome2.fa";"+ strand genome3.fa";"- strand genome1.fa";"- strand genome2.fa";"- strand genome3.fa" 2 | 0,0;0,0;0,0;0,0;0,12|2,5;;0,12 3 | 0,1;0,1;0,1;0,1|0,19;0,11;;0,11 4 | 0,2;0,2;0,2;0,2;0,10;;0,10 5 | 0,3;0,3;0,3;0,3;;; 6 | 0,4;0,4|0,13;0,4;0,4|0,13;2,9;; 7 | 0,5;0,5|0,14;0,5;0,5|0,14;;; 8 | 0,6;0,6|0,15;0,6;0,6|0,15;;;1,0 9 | 0,7;0,7|0,16;0,7;0,7|0,16;;; 10 | 0,8;0,8|0,17|2,0;0,8;0,8|0,17;;; 11 | 0,9;0,9;0,9;0,9;;; 12 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/csv/genome3.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome1.fa";"+ strand genome2.fa";"+ strand genome3.fa";"- strand genome1.fa";"- strand genome2.fa";"- strand genome3.fa" 2 | 0,0;0,0;0,0;0,0;0,12|2,5;;0,12 3 | 0,1;0,1;0,1;0,1|0,19;0,11;;0,11 4 | 0,2;0,2;0,2;0,2;0,10;;0,10 5 | 0,3;0,3;0,3;0,3;;; 6 | 0,4;0,4|0,13;0,4;0,4|0,13;2,9;; 7 | 0,5;0,5|0,14;0,5;0,5|0,14;;; 8 | 0,6;0,6|0,15;0,6;0,6|0,15;;;1,0 9 | 0,7;0,7|0,16;0,7;0,7|0,16;;; 10 | 0,8;0,8|0,17|2,0;0,8;0,8|0,17;;; 11 | 0,9;0,9;0,9;0,9;;; 12 | 0,10;0,10;;0,10;0,2;0,2;0,2 13 | 0,11;0,11;;0,11;0,1;0,1;0,1|0,19 14 | 0,12;0,12|2,5;;0,12;0,0;0,0;0,0 15 | 0,13;0,4|0,13;0,4;0,4|0,13;2,9;; 16 | 0,14;0,5|0,14;0,5;0,5|0,14;;; 17 | 0,15;0,6|0,15;0,6;0,6|0,15;;;1,0 18 | 0,16;0,7|0,16;0,7;0,7|0,16;;; 19 | 0,17;0,8|0,17|2,0;0,8;0,8|0,17;;; 20 | 0,18;0,18|2,1;;0,18;;; 21 | 0,19;0,1;0,1;0,1|0,19;0,11;;0,11 22 | 0,20;;;0,20;;; 23 | 0,21;;;0,21;;; 24 | 0,22;;;0,22|1,5;;;1,3|1,7 25 | 1,0;;;1,0;0,6|0,15;0,6;0,6|0,15 26 | 1,1;;;1,1;;; 27 | 1,2;;;1,2;;; 28 | 1,3;;;1,3|1,7;;;0,22|1,5 29 | 1,4;;;1,4|1,8;;;1,4|1,8 30 | 1,5;;;0,22|1,5;;;1,3|1,7 31 | 1,6;2,3;;1,6;2,3;;1,6 32 | 1,7;;;1,3|1,7;;;0,22|1,5 33 | 1,8;;;1,4|1,8;;;1,4|1,8 34 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/genome1.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGACCAAAAGGT 3 | >seq1 4 | CCA 5 | >seq2 6 | AAGGTACCATTGG 7 | >seq3 8 | CCA 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/genome2.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGA 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/genome3.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGACCAAAAGGTCGTA 3 | >seq1 4 | TTTTACGTACGT 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/raw_freq16/genome1.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3d/raw_freq16/genome2.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3d/raw_freq16/genome3.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3d/raw_freq8/genome1.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3d/raw_freq8/genome2.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3d/raw_freq8/genome3.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3d/raw_map/genome1.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_3d/raw_map/genome1.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_3d/raw_map/genome2.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_3d/raw_map/genome2.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_3d/raw_map/genome3.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_3d/raw_map/genome3.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_3d/txt_freq16/genome1.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 0 0 0 3 | >seq1 4 | 0 0 0 5 | >seq2 6 | 3 2 1 2 1 3 1 1 1 3 0 0 0 7 | >seq3 8 | 0 0 0 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/txt_freq16/genome2.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 3 3 3 3 3 3 3 3 3 3 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/txt_freq16/genome3.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 3 1 1 1 0 0 0 3 | >seq1 4 | 3 1 1 1 1 1 2 1 1 0 0 0 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/txt_map/genome1.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.5 0 0 0 3 | >seq1 4 | 0 0 0 5 | >seq2 6 | 0.333333 0.5 1 0.5 1 0.333333 1 1 1 0.333333 0 0 0 7 | >seq3 8 | 0 0 0 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/txt_map/genome2.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0 0 0 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/txt_map/genome3.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.5 0.333333 1 1 1 0 0 0 3 | >seq1 4 | 0.333333 1 1 1 1 1 0.5 1 1 0 0 0 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/wig_freq16/genome1.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 3 3 | seq2 13 4 | seq3 3 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/wig_freq16/genome1.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=18 2 | 1 3 3 | variableStep chrom=seq0 span=1 4 | 19 2 5 | variableStep chrom=seq2 span=1 6 | 1 3 7 | 2 2 8 | 3 1 9 | 4 2 10 | 5 1 11 | 6 3 12 | variableStep chrom=seq2 span=3 13 | 7 1 14 | variableStep chrom=seq2 span=1 15 | 10 3 16 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/wig_freq16/genome2.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 13 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/wig_freq16/genome2.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=10 2 | 1 3 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/wig_freq16/genome3.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 26 2 | seq1 12 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/wig_freq16/genome3.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=18 2 | 1 3 3 | variableStep chrom=seq0 span=1 4 | 19 2 5 | 20 3 6 | variableStep chrom=seq0 span=3 7 | 21 1 8 | variableStep chrom=seq1 span=1 9 | 1 3 10 | variableStep chrom=seq1 span=5 11 | 2 1 12 | variableStep chrom=seq1 span=1 13 | 7 2 14 | variableStep chrom=seq1 span=2 15 | 8 1 16 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/wig_map/genome1.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 3 3 | seq2 13 4 | seq3 3 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/wig_map/genome1.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=18 2 | 1 0.333333 3 | variableStep chrom=seq0 span=1 4 | 19 0.5 5 | variableStep chrom=seq2 span=1 6 | 1 0.333333 7 | 2 0.5 8 | 3 1 9 | 4 0.5 10 | 5 1 11 | 6 0.333333 12 | variableStep chrom=seq2 span=3 13 | 7 1 14 | variableStep chrom=seq2 span=1 15 | 10 0.333333 16 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/wig_map/genome2.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 13 2 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/wig_map/genome2.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=10 2 | 1 0.333333 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/wig_map/genome3.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 26 2 | seq1 12 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3d/wig_map/genome3.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=18 2 | 1 0.333333 3 | variableStep chrom=seq0 span=1 4 | 19 0.5 5 | 20 0.333333 6 | variableStep chrom=seq0 span=3 7 | 21 1 8 | variableStep chrom=seq1 span=1 9 | 1 0.333333 10 | variableStep chrom=seq1 span=5 11 | 2 1 12 | variableStep chrom=seq1 span=1 13 | 7 0.5 14 | variableStep chrom=seq1 span=2 15 | 8 1 16 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/bed_freq16/genome1.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 3 3 2 | seq0 6 7 3 3 | seq0 9 12 3 4 | seq0 15 16 3 5 | seq2 5 6 3 6 | seq2 6 9 1 7 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/bed_freq16/genome3.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq6 0 1 3 2 | seq6 1 6 1 3 | seq6 6 7 2 4 | seq6 7 9 1 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/bed_map/genome1.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 3 0.333333 2 | seq0 6 7 0.333333 3 | seq0 9 12 0.333333 4 | seq0 15 16 0.333333 5 | seq2 5 6 0.333333 6 | seq2 6 9 1 7 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/bed_map/genome3.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq6 0 1 0.333333 2 | seq6 1 6 1 3 | seq6 6 7 0.5 4 | seq6 7 9 1 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/csv/genome1.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome1.fa";"+ strand genome2.fa";"+ strand genome3.fa";"- strand genome1.fa";"- strand genome2.fa";"- strand genome3.fa" 2 | 0,0;0,0;0,0;0,0;0,12|2,5;;0,12 3 | 0,1;0,1;0,1;0,1|0,19;0,11;;0,11 4 | 0,2;0,2;0,2;0,2;0,10;;0,10 5 | 0,6;0,6|0,15;0,6;0,6|0,15;;;1,0 6 | 0,9;0,9;0,9;0,9;;; 7 | 0,10;0,10;;0,10;0,2;0,2;0,2 8 | 0,11;0,11;;0,11;0,1;0,1;0,1|0,19 9 | 0,15;0,6|0,15;0,6;0,6|0,15;;;1,0 10 | 2,5;0,12|2,5;;0,12;0,0;0,0;0,0 11 | 2,6;2,6;;;;; 12 | 2,7;2,7;;;;; 13 | 2,8;2,8;;;;; 14 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/csv/genome3.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome1.fa";"+ strand genome2.fa";"+ strand genome3.fa";"- strand genome1.fa";"- strand genome2.fa";"- strand genome3.fa" 2 | 1,0;;;1,0;0,6|0,15;0,6;0,6|0,15 3 | 1,1;;;1,1;;; 4 | 1,2;;;1,2;;; 5 | 1,3;;;1,3|1,7;;;0,22|1,5 6 | 1,4;;;1,4|1,8;;;1,4|1,8 7 | 1,5;;;0,22|1,5;;;1,3|1,7 8 | 1,6;2,3;;1,6;2,3;;1,6 9 | 1,7;;;1,3|1,7;;;0,22|1,5 10 | 1,8;;;1,4|1,8;;;1,4|1,8 11 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/genome1.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGACCAAAAGGT 3 | >seq1 4 | CCA 5 | >seq2 6 | AAGGTACCATTGG 7 | >seq3 8 | CCA 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/genome2.fa: -------------------------------------------------------------------------------- 1 | >seq4 2 | TGGTCCAAAAGGA 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/genome3.fa: -------------------------------------------------------------------------------- 1 | >seq5 2 | TGGTCCAAAAGGACCAAAAGGTCGTA 3 | >seq6 4 | TTTTACGTACGT 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/raw_freq16/genome1.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3e/raw_freq16/genome3.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3e/raw_freq8/genome1.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3e/raw_freq8/genome3.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3e/raw_map/genome1.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_3e/raw_map/genome1.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_3e/raw_map/genome3.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_3e/raw_map/genome3.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_3e/subset.bed: -------------------------------------------------------------------------------- 1 | seq0 0 3 2 | seq0 6 7 3 | seq0 9 12 4 | seq0 15 16 5 | seq1 1 3 6 | seq2 5 9 7 | seq6 0 12 8 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/txt_freq16/genome1.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 3 3 3 0 0 0 3 0 0 3 3 3 0 0 0 3 0 0 0 0 0 0 3 | >seq1 4 | 0 0 0 5 | >seq2 6 | 0 0 0 0 0 3 1 1 1 0 0 0 0 7 | >seq3 8 | 0 0 0 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/txt_freq16/genome3.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq5 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | >seq6 4 | 3 1 1 1 1 1 2 1 1 0 0 0 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/txt_map/genome1.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.333333 0.333333 0.333333 0 0 0 0.333333 0 0 0.333333 0.333333 0.333333 0 0 0 0.333333 0 0 0 0 0 0 3 | >seq1 4 | 0 0 0 5 | >seq2 6 | 0 0 0 0 0 0.333333 1 1 1 0 0 0 0 7 | >seq3 8 | 0 0 0 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/txt_map/genome3.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq5 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | >seq6 4 | 0.333333 1 1 1 1 1 0.5 1 1 0 0 0 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/wig_freq16/genome1.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 3 3 | seq2 13 4 | seq3 3 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/wig_freq16/genome1.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=3 2 | 1 3 3 | variableStep chrom=seq0 span=1 4 | 7 3 5 | variableStep chrom=seq0 span=3 6 | 10 3 7 | variableStep chrom=seq0 span=1 8 | 16 3 9 | variableStep chrom=seq2 span=1 10 | 6 3 11 | variableStep chrom=seq2 span=3 12 | 7 1 13 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/wig_freq16/genome3.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq5 26 2 | seq6 12 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/wig_freq16/genome3.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq6 span=1 2 | 1 3 3 | variableStep chrom=seq6 span=5 4 | 2 1 5 | variableStep chrom=seq6 span=1 6 | 7 2 7 | variableStep chrom=seq6 span=2 8 | 8 1 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/wig_map/genome1.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 3 3 | seq2 13 4 | seq3 3 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/wig_map/genome1.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=3 2 | 1 0.333333 3 | variableStep chrom=seq0 span=1 4 | 7 0.333333 5 | variableStep chrom=seq0 span=3 6 | 10 0.333333 7 | variableStep chrom=seq0 span=1 8 | 16 0.333333 9 | variableStep chrom=seq2 span=1 10 | 6 0.333333 11 | variableStep chrom=seq2 span=3 12 | 7 1 13 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/wig_map/genome3.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq5 26 2 | seq6 12 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3e/wig_map/genome3.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq6 span=1 2 | 1 0.333333 3 | variableStep chrom=seq6 span=5 4 | 2 1 5 | variableStep chrom=seq6 span=1 6 | 7 0.5 7 | variableStep chrom=seq6 span=2 8 | 8 1 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/bed_freq16/genome1.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 3 3 2 | seq0 6 7 3 3 | seq0 9 12 3 4 | seq0 15 16 3 5 | seq2 5 6 3 6 | seq2 6 9 1 7 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/bed_freq16/genome3.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq5 0 18 3 2 | seq5 18 19 2 3 | seq5 19 20 3 4 | seq5 20 23 1 5 | seq6 0 1 3 6 | seq6 1 6 1 7 | seq6 6 7 2 8 | seq6 7 9 1 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/bed_map/genome1.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq0 0 3 0.333333 2 | seq0 6 7 0.333333 3 | seq0 9 12 0.333333 4 | seq0 15 16 0.333333 5 | seq2 5 6 0.333333 6 | seq2 6 9 1 7 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/bed_map/genome3.genmap.bedgraph: -------------------------------------------------------------------------------- 1 | seq5 0 18 0.333333 2 | seq5 18 19 0.5 3 | seq5 19 20 0.333333 4 | seq5 20 23 1 5 | seq6 0 1 0.333333 6 | seq6 1 6 1 7 | seq6 6 7 0.5 8 | seq6 7 9 1 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/csv/genome1.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome1.fa";"+ strand genome2.fa";"+ strand genome3.fa";"- strand genome1.fa";"- strand genome2.fa";"- strand genome3.fa" 2 | 0,0;0,0;0,0;0,0;0,12|2,5;;0,12 3 | 0,1;0,1;0,1;0,1|0,19;0,11;;0,11 4 | 0,2;0,2;0,2;0,2;0,10;;0,10 5 | 0,6;0,6|0,15;0,6;0,6|0,15;;;1,0 6 | 0,9;0,9;0,9;0,9;;; 7 | 0,10;0,10;;0,10;0,2;0,2;0,2 8 | 0,11;0,11;;0,11;0,1;0,1;0,1|0,19 9 | 0,15;0,6|0,15;0,6;0,6|0,15;;;1,0 10 | 2,5;0,12|2,5;;0,12;0,0;0,0;0,0 11 | 2,6;2,6;;;;; 12 | 2,7;2,7;;;;; 13 | 2,8;2,8;;;;; 14 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/csv/genome3.genmap.csv: -------------------------------------------------------------------------------- 1 | "k-mer";"+ strand genome1.fa";"+ strand genome2.fa";"+ strand genome3.fa";"- strand genome1.fa";"- strand genome2.fa";"- strand genome3.fa" 2 | 0,0;0,0;0,0;0,0;0,12|2,5;;0,12 3 | 0,1;0,1;0,1;0,1|0,19;0,11;;0,11 4 | 0,2;0,2;0,2;0,2;0,10;;0,10 5 | 0,3;0,3;0,3;0,3;;; 6 | 0,4;0,4|0,13;0,4;0,4|0,13;2,9;; 7 | 0,5;0,5|0,14;0,5;0,5|0,14;;; 8 | 0,6;0,6|0,15;0,6;0,6|0,15;;;1,0 9 | 0,7;0,7|0,16;0,7;0,7|0,16;;; 10 | 0,8;0,8|0,17|2,0;0,8;0,8|0,17;;; 11 | 0,9;0,9;0,9;0,9;;; 12 | 0,10;0,10;;0,10;0,2;0,2;0,2 13 | 0,11;0,11;;0,11;0,1;0,1;0,1|0,19 14 | 0,12;0,12|2,5;;0,12;0,0;0,0;0,0 15 | 0,13;0,4|0,13;0,4;0,4|0,13;2,9;; 16 | 0,14;0,5|0,14;0,5;0,5|0,14;;; 17 | 0,15;0,6|0,15;0,6;0,6|0,15;;;1,0 18 | 0,16;0,7|0,16;0,7;0,7|0,16;;; 19 | 0,17;0,8|0,17|2,0;0,8;0,8|0,17;;; 20 | 0,18;0,18|2,1;;0,18;;; 21 | 0,19;0,1;0,1;0,1|0,19;0,11;;0,11 22 | 0,20;;;0,20;;; 23 | 0,21;;;0,21;;; 24 | 0,22;;;0,22|1,5;;;1,3|1,7 25 | 1,0;;;1,0;0,6|0,15;0,6;0,6|0,15 26 | 1,1;;;1,1;;; 27 | 1,2;;;1,2;;; 28 | 1,3;;;1,3|1,7;;;0,22|1,5 29 | 1,4;;;1,4|1,8;;;1,4|1,8 30 | 1,5;;;0,22|1,5;;;1,3|1,7 31 | 1,6;2,3;;1,6;2,3;;1,6 32 | 1,7;;;1,3|1,7;;;0,22|1,5 33 | 1,8;;;1,4|1,8;;;1,4|1,8 34 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/genome1.fa: -------------------------------------------------------------------------------- 1 | >seq0 2 | TGGTCCAAAAGGACCAAAAGGT 3 | >seq1 4 | CCA 5 | >seq2 6 | AAGGTACCATTGG 7 | >seq3 8 | CCA 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/genome2.fa: -------------------------------------------------------------------------------- 1 | >seq4 2 | TGGTCCAAAAGGA 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/genome3.fa: -------------------------------------------------------------------------------- 1 | >seq5 2 | TGGTCCAAAAGGACCAAAAGGTCGTA 3 | >seq6 4 | TTTTACGTACGT 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/raw_freq16/genome1.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3f/raw_freq16/genome3.genmap.freq16: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3f/raw_freq8/genome1.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3f/raw_freq8/genome3.genmap.freq8: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /tests/test_cases/case_3f/raw_map/genome1.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_3f/raw_map/genome1.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_3f/raw_map/genome3.genmap.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpockrandt/genmap/f42d1768e65e10b8b3f659d34f5f68793f7a29fb/tests/test_cases/case_3f/raw_map/genome3.genmap.map -------------------------------------------------------------------------------- /tests/test_cases/case_3f/subset.bed: -------------------------------------------------------------------------------- 1 | seq0 0 3 2 | seq0 6 7 3 | seq0 9 12 4 | seq0 15 16 5 | seq1 1 3 6 | seq2 5 9 7 | seq5 0 26 8 | seq6 0 12 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/txt_freq16/genome1.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 3 3 3 0 0 0 3 0 0 3 3 3 0 0 0 3 0 0 0 0 0 0 3 | >seq1 4 | 0 0 0 5 | >seq2 6 | 0 0 0 0 0 3 1 1 1 0 0 0 0 7 | >seq3 8 | 0 0 0 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/txt_freq16/genome3.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq5 2 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 3 1 1 1 0 0 0 3 | >seq6 4 | 3 1 1 1 1 1 2 1 1 0 0 0 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/txt_map/genome1.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq0 2 | 0.333333 0.333333 0.333333 0 0 0 0.333333 0 0 0.333333 0.333333 0.333333 0 0 0 0.333333 0 0 0 0 0 0 3 | >seq1 4 | 0 0 0 5 | >seq2 6 | 0 0 0 0 0 0.333333 1 1 1 0 0 0 0 7 | >seq3 8 | 0 0 0 9 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/txt_map/genome3.genmap.txt: -------------------------------------------------------------------------------- 1 | >seq5 2 | 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.5 0.333333 1 1 1 0 0 0 3 | >seq6 4 | 0.333333 1 1 1 1 1 0.5 1 1 0 0 0 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/wig_freq16/genome1.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 3 3 | seq2 13 4 | seq3 3 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/wig_freq16/genome1.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=3 2 | 1 3 3 | variableStep chrom=seq0 span=1 4 | 7 3 5 | variableStep chrom=seq0 span=3 6 | 10 3 7 | variableStep chrom=seq0 span=1 8 | 16 3 9 | variableStep chrom=seq2 span=1 10 | 6 3 11 | variableStep chrom=seq2 span=3 12 | 7 1 13 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/wig_freq16/genome3.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq5 26 2 | seq6 12 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/wig_freq16/genome3.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq5 span=18 2 | 1 3 3 | variableStep chrom=seq5 span=1 4 | 19 2 5 | 20 3 6 | variableStep chrom=seq5 span=3 7 | 21 1 8 | variableStep chrom=seq6 span=1 9 | 1 3 10 | variableStep chrom=seq6 span=5 11 | 2 1 12 | variableStep chrom=seq6 span=1 13 | 7 2 14 | variableStep chrom=seq6 span=2 15 | 8 1 16 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/wig_map/genome1.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq0 22 2 | seq1 3 3 | seq2 13 4 | seq3 3 5 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/wig_map/genome1.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq0 span=3 2 | 1 0.333333 3 | variableStep chrom=seq0 span=1 4 | 7 0.333333 5 | variableStep chrom=seq0 span=3 6 | 10 0.333333 7 | variableStep chrom=seq0 span=1 8 | 16 0.333333 9 | variableStep chrom=seq2 span=1 10 | 6 0.333333 11 | variableStep chrom=seq2 span=3 12 | 7 1 13 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/wig_map/genome3.genmap.chrom.sizes: -------------------------------------------------------------------------------- 1 | seq5 26 2 | seq6 12 3 | -------------------------------------------------------------------------------- /tests/test_cases/case_3f/wig_map/genome3.genmap.wig: -------------------------------------------------------------------------------- 1 | variableStep chrom=seq5 span=18 2 | 1 0.333333 3 | variableStep chrom=seq5 span=1 4 | 19 0.5 5 | 20 0.333333 6 | variableStep chrom=seq5 span=3 7 | 21 1 8 | variableStep chrom=seq6 span=1 9 | 1 0.333333 10 | variableStep chrom=seq6 span=5 11 | 2 1 12 | variableStep chrom=seq6 span=1 13 | 7 0.5 14 | variableStep chrom=seq6 span=2 15 | 8 1 16 | -------------------------------------------------------------------------------- /tests/tests.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | static constexpr bool outputProgress = false; 10 | 11 | #include "../src/common.hpp" 12 | #include "../src/algo.hpp" 13 | 14 | using namespace seqan; 15 | 16 | std::mt19937_64 rng; 17 | 18 | template 19 | unsigned GemMapFastFMIndexConfig::SAMPLING = 10; 20 | 21 | template 22 | void randomText(String & string, TRng & rng, uint64_t const length) 23 | { 24 | std::uniform_int_distribution distr(0, ValueSize::VALUE - 1); 25 | resize(string, length); 26 | for (uint64_t i = 0; i < length; ++i) 27 | string[i] = TChar(distr(rng)); 28 | } 29 | 30 | template 31 | inline void 32 | _trivialBacktracking(TIndexIt indexIt, TNeedle const & needle, TNeedleIt needleIt, 33 | TThreshold errors, TThreshold threshold, uint64_t & frequency, TDistance) 34 | { 35 | constexpr bool isDna5 = std::is_same::Type, Dna5>::value; 36 | 37 | // Exact case. 38 | if (errors == threshold) 39 | { 40 | while (!atEnd(needleIt, needle)) 41 | { 42 | if ((isDna5 && (*needleIt == Dna5('N'))) || !goDown(indexIt, *needleIt)) 43 | break; 44 | ++needleIt; 45 | } 46 | if (atEnd(needleIt, needle)) 47 | frequency += countOccurrences(indexIt); 48 | } 49 | // Approximate case. 50 | else if (errors < threshold) 51 | { 52 | // Base case. 53 | if (atEnd(needleIt, needle)) 54 | { 55 | frequency += countOccurrences(indexIt); 56 | } 57 | // Recursive case. 58 | else 59 | { 60 | // Insertion. 61 | SEQAN_IF_CONSTEXPR (IsSameType::VALUE) 62 | { 63 | _trivialBacktracking(indexIt, needle, needleIt + 1, 64 | static_cast(errors + 1), threshold, frequency, TDistance()); 65 | } 66 | 67 | if (goDown(indexIt)) 68 | { 69 | do 70 | { 71 | // Mismatch. 72 | TThreshold delta = (isDna5 && *needleIt == Dna5('N')) || !ordEqual(parentEdgeLabel(indexIt), *needleIt); 73 | _trivialBacktracking(indexIt, needle, needleIt + 1, 74 | static_cast(errors + delta), threshold, frequency, TDistance()); 75 | 76 | // Deletion. 77 | SEQAN_IF_CONSTEXPR (IsSameType::VALUE) 78 | { 79 | _trivialBacktracking(indexIt, needle, needleIt, 80 | static_cast(errors + 1), threshold, frequency, TDistance()); 81 | } 82 | } 83 | while (goRight(indexIt)); 84 | } 85 | } 86 | } 87 | } 88 | 89 | template 90 | uint64_t trivialBacktracking(TIndex & index, TNeedle const & needle, TThreshold threshold, TDistance const & /*tag*/) 91 | { 92 | typedef typename Iterator >::Type TIndexIt; 93 | typedef typename Iterator::Type TNeedleIt; 94 | 95 | TIndexIt indexIt(index); 96 | TNeedleIt needleIt = begin(needle, Standard()); 97 | TThreshold errors = 0; 98 | 99 | uint64_t frequency = 0; 100 | _trivialBacktracking(indexIt.revIter, needle, needleIt, errors, threshold, frequency, TDistance()); 101 | return frequency; 102 | } 103 | 104 | template 105 | inline void computeMappabilityTrivial(TIndex & index, TContainer & c, SearchParams const & searchParams, unsigned const errors) 106 | { 107 | using value_type = typename TContainer::value_type; 108 | 109 | constexpr uint64_t max_val = std::numeric_limits::max(); 110 | 111 | auto const & text = indexText(index); 112 | 113 | uint64_t global_pos = 0; 114 | for (uint64_t seq = 0; seq < length(text); ++seq) 115 | { 116 | for (uint64_t i = 0; i < length(text[seq]) - searchParams.length + 1; ++i, ++global_pos) 117 | { 118 | auto const & needle = infix(text[seq], i, i + searchParams.length); 119 | 120 | value_type hits = std::min(trivialBacktracking(index, needle, errors, TDistance()), max_val); 121 | if (searchParams.revCompl && hits < max_val) 122 | { 123 | String needleRevCompl(needle); 124 | reverseComplement(needleRevCompl); 125 | hits = std::min(hits + trivialBacktracking(index, needleRevCompl, errors, TDistance()), max_val); 126 | } 127 | c[global_pos] = hits; 128 | } 129 | global_pos += searchParams.length - 1; 130 | } 131 | } 132 | 133 | template 134 | void test(uint64_t const nbrChromosomes, uint64_t const lengthChromosomes, uint64_t const iterations) 135 | { 136 | using TIndexConfig = TBiIndexConfig>; 137 | 138 | for (uint64_t it = 0; it < iterations; ++it) 139 | { 140 | typedef StringSet, Owner > > TGenome; 141 | TGenome genome; 142 | 143 | // TODO: replace with stringSetLimits 144 | StringSet chromLengths, chromCumLengths; // needed for localization and reset 145 | 146 | uint64_t cumLength = 0; 147 | appendValue(chromCumLengths, 0); 148 | for (uint64_t ss = 0; ss < nbrChromosomes; ++ss) 149 | { 150 | String chr; 151 | randomText(chr, rng, lengthChromosomes); 152 | appendValue(genome, chr); 153 | appendValue(chromLengths, lengthChromosomes); 154 | cumLength += lengthChromosomes; 155 | appendValue(chromCumLengths, cumLength); 156 | } 157 | // auto const chromLengths = stringSetLimits(genome); 158 | 159 | Index index(genome); 160 | indexCreate(index, FibreSALF()); 161 | auto const & text = indexText(index).concat; 162 | 163 | uint64_t const totalLength = seqan::length(text); 164 | std::vector frequencyGenMap(totalLength), frequencyTrivial(totalLength); 165 | 166 | uint64_t const minK = errors + 1 + (errors >= 2); 167 | 168 | for (uint64_t k = minK; k <= 8; ++k) 169 | { 170 | SearchParams searchParams; 171 | searchParams.length = k; 172 | searchParams.threads = omp_get_num_threads(); 173 | searchParams.revCompl = rng() % 2; 174 | searchParams.excludePseudo = false; 175 | 176 | frequencyTrivial.assign(totalLength, 0); 177 | computeMappabilityTrivial(index, frequencyTrivial, searchParams, errors); 178 | 179 | // iterate over all possible overlap values 180 | for (uint64_t overlap = minK; overlap <= k; ++overlap) 181 | { 182 | searchParams.overlap = overlap; 183 | // std::cout << "E: " << errors << ", K: " << k << ", O: " << overlap << std::endl; 184 | 185 | using TLocation = Pair; 186 | std::map, std::vector > > locations; 187 | std::vector mappingSeqIdFile(0); 188 | 189 | frequencyGenMap.assign(totalLength, 0); 190 | std::vector > intervals; 191 | bool completeSameKmers; 192 | computeMappability(index, text, frequencyGenMap, searchParams, false /*dir*/, chromLengths, chromCumLengths, 193 | locations, mappingSeqIdFile, intervals, completeSameKmers, 1/*currentFileNo*/, 1/*totalFileNo*/, false /*csvComputation*/); 194 | 195 | EXPECT_EQ(frequencyTrivial, frequencyGenMap); 196 | // if (frequencyTrivial != frequencyGenMap) 197 | // { 198 | // std::cerr << "K: " << k << ", Overlap: " << overlap << '\n'; 199 | // for (uint64_t ss = 0; ss < nbrChromosomes; ++ss) 200 | // std::cerr << genome[ss] << '\n'; 201 | // std::copy(frequencyTrivial.begin(), frequencyTrivial.end(), std::ostream_iterator(std::cerr, " ")); 202 | // std::cerr << '\n'; 203 | // std::copy(frequencyGenMap.begin(), frequencyGenMap.end(), std::ostream_iterator(std::cerr, " ")); 204 | // std::cerr << '\n'; 205 | // exit(1); 206 | // } 207 | } 208 | } 209 | } 210 | } 211 | 212 | TEST(GenMapAlgo, exact_dna4) 213 | { 214 | test(3, 1000, 1); 215 | } 216 | 217 | TEST(GenMapAlgo, hamming_1_dna4) 218 | { 219 | test(3, 1000, 1); 220 | } 221 | 222 | TEST(GenMapAlgo, hamming_2_dna4) 223 | { 224 | test(3, 1000, 1); 225 | } 226 | 227 | TEST(GenMapAlgo, hamming_3_dna4) 228 | { 229 | test(3, 1000, 1); 230 | } 231 | 232 | TEST(GenMapAlgo, hamming_4_dna4) 233 | { 234 | test(3, 1000, 1); 235 | } 236 | 237 | TEST(GenMapAlgo, exact_dna5) 238 | { 239 | test(3, 1000, 1); 240 | } 241 | 242 | TEST(GenMapAlgo, hamming_1_dna5) 243 | { 244 | test(3, 1000, 1); 245 | } 246 | 247 | TEST(GenMapAlgo, hamming_2_dna5) 248 | { 249 | test(3, 1000, 1); 250 | } 251 | 252 | TEST(GenMapAlgo, hamming_3_dna5) 253 | { 254 | test(3, 1000, 1); 255 | } 256 | 257 | TEST(GenMapAlgo, hamming_4_dna5) 258 | { 259 | test(3, 1000, 1); 260 | } 261 | 262 | int main(int argc, char ** argv) 263 | { 264 | auto now = std::chrono::system_clock::now(); 265 | auto seed = std::chrono::duration_cast(now.time_since_epoch()).count(); 266 | rng.seed(seed); 267 | std::cout << "Seed: " << seed << '\n'; 268 | 269 | ::testing::InitGoogleTest(&argc, argv); 270 | return RUN_ALL_TESTS(); 271 | } 272 | -------------------------------------------------------------------------------- /tests/tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh -xe 2 | 3 | errorout() 4 | { 5 | echo $1 #> /dev/stderr 6 | [ "$MYTMP" = "" ] || rm -r "${MYTMP}" 7 | exit 1 8 | } 9 | 10 | [ $# -ne 6 ] && exit 1 11 | 12 | SRCDIR=$1 13 | BINDIR=$2 14 | CASE=$3 15 | INDEX_FLAGS=$4 16 | FLAGS=$5 17 | EXPECTED_FOLDER=$6 18 | 19 | # Add -S argument for computing a subset of the mappability vector if a bed file exists 20 | if [ -f "${SRCDIR}/tests/test_cases/case_${CASE}/subset.bed" ]; then 21 | FLAGS="$FLAGS -S ${SRCDIR}/tests/test_cases/case_${CASE}/subset.bed" 22 | fi 23 | 24 | # check existence of commands 25 | which mktemp diff > /dev/null 26 | [ $? -eq 0 ] || errorout "Not all required programs found. Needs: mktemp diff" 27 | 28 | MYTMP="$(mktemp -q -d -t "$(basename "$0").XXXXXX" 2>/dev/null || mktemp -q -d)" 29 | [ $? -eq 0 ] || errorout "Could not create tmp" 30 | 31 | mkdir -p "${MYTMP}/output" 32 | [ $? -eq 0 ] || errorout "Could not create folder in tmp" 33 | 34 | cd "$MYTMP" 35 | [ $? -eq 0 ] || errorout "Could not cd to tmp" 36 | 37 | if [ "$INDEX_FLAGS" = "-FD" ]; then 38 | ${BINDIR}/bin/genmap index -FD "${SRCDIR}/tests/test_cases/case_${CASE}" -I "${MYTMP}/index" -A skew 39 | else 40 | ${BINDIR}/bin/genmap index -F "${SRCDIR}/tests/test_cases/case_${CASE}/genome.fa" -I "${MYTMP}/index" -A divsufsort 41 | fi 42 | 43 | ${BINDIR}/bin/genmap map -I "${MYTMP}/index" -O "${MYTMP}/output" ${FLAGS} 44 | diff -r --strip-trailing-cr "${SRCDIR}/tests/test_cases/case_${CASE}/${EXPECTED_FOLDER}" "${MYTMP}/output" 45 | [ $? -eq 0 ] || errorout "Files are not equal!" 46 | 47 | # case 1e and 1f do not allow a larger overlap since E=1 and K=3 48 | if [ "$CASE" != "1e" ] && [ "$CASE" != "1f" ] && [ "$CASE" != "1g" ]; then 49 | ${BINDIR}/bin/genmap map -I "${MYTMP}/index" -O "${MYTMP}/output" ${FLAGS} -xo 1 50 | diff -r --strip-trailing-cr "${SRCDIR}/tests/test_cases/case_${CASE}/${EXPECTED_FOLDER}" "${MYTMP}/output" 51 | [ $? -eq 0 ] || errorout "Files are not equal!" 52 | fi 53 | 54 | testnumber=`echo ${CASE} | cut -c1-1` # 1g -> 1 (retrieves the first character of ${CASE}) 55 | 56 | if [ "$testnumber" != "1" ]; then 57 | ${BINDIR}/bin/genmap map -I "${MYTMP}/index" -O "${MYTMP}/output" ${FLAGS} -xo 2 58 | diff -r --strip-trailing-cr "${SRCDIR}/tests/test_cases/case_${CASE}/${EXPECTED_FOLDER}" "${MYTMP}/output" 59 | [ $? -eq 0 ] || errorout "Files are not equal!" 60 | fi 61 | 62 | # gunzip < "${SRCDIR}/tests/db_${SALPHIN}.fasta.gz" > db.fasta 63 | # [ $? -eq 0 ] || errorout "Could not unzip database file" 64 | # 65 | # ${BINDIR}/bin/lambda_indexer -d db.fasta -di ${DI} -p ${PROG} 66 | # [ $? -eq 0 ] || errorout "Could not run the indexer" 67 | # 68 | # openssl md5 * > md5sums 69 | # [ $? -eq 0 ] || errorout "Could not run md5 or md5sums" 70 | # 71 | # gunzip < "${SRCDIR}/tests/db_${SALPH}_${DI}.md5sums.gz" > md5sums.orig 72 | # [ $? -eq 0 ] || errorout "Could not unzip md5sums.orig" 73 | # 74 | # [ "$(cat md5sums)" = "$(cat md5sums.orig)" ] || errorout "$(diff -u md5sums md5sums.orig)" 75 | # 76 | # ## INDEXER tests end here 77 | # if [ "$MODE" = "MKINDEX" ]; then 78 | # rm -r "${MYTMP}" 79 | # exit 0 80 | # fi 81 | # 82 | # gunzip < "${SRCDIR}/tests/queries_${QALPHIN}.fasta.gz" > queries.fasta 83 | # [ $? -eq 0 ] || errorout "Could not unzip queries.fasta" 84 | # 85 | # ${BINDIR}/bin/lambda -d db.fasta -di ${DI} -p ${PROG} -q queries.fasta -t 1 --version-to-outputfile off \ 86 | # -o output_${PROG}_${DI}.${EXTENSION} 87 | # [ $? -eq 0 ] || errorout "Search failed." 88 | # 89 | # [ "$(openssl md5 output_${PROG}_${DI}.${EXTENSION})" = \ 90 | # "$(zgrep "(output_${PROG}_${DI}.${EXTENSION})" "${SRCDIR}/tests/search_test_outfile.md5sums.gz")" ] || errorout "MD5 mismatch of output file" 91 | 92 | rm -r "${MYTMP}" 93 | [ $? -eq 0 ] || errorout "Could not remove tmp" 94 | --------------------------------------------------------------------------------