1- # Building and comparing a variable-length Markov chain from k-mers
1+ # Fast construction of variable-length Markov chains (VLMC) from k-mers
22
33This repository contains the code for constructing a variable-length Markov chain (VLMC) from a lexicographically
4- sorted list of _ k_ -mers. This enables VLMCs to be constructed on even very large genomes, as well as collections
5- of sequences .
4+ sorted list of _ k_ -mers. This enables VLMCs to be constructed very efficiently even for very large genomes, as well as collections
5+ of sequencing data .
66
77This repository deals mainly with the task of constructing the VLMC, for scoring of sequences, or most dissimilarities
88between
@@ -13,33 +13,48 @@ accepts the output form this progam.
1313
1414Publication pending...
1515
16- ## Compilation
16+ ## Installation
1717
18- To compile the program, please first download all submodules:
18+ ### Container solution / apptainer (previously singularity)
1919
20+ We provide an [ apptainer container] ( https://apptainer.org/ ) . The definition file ` vlmc-from-kmers.def ` needs to be modified to
21+ use the correct path to kmc, see the fifth and sixth line, specifically
2022``` shell script
21- git submodule update --init --recursive
23+ ../kmc/KMC3.linux/kmc /kmc/kmc
24+ ../kmc/KMC3.linux/kmc_tools /kmc/kmc_tools
2225```
2326
24- ### Container solution / apptainer (previously singularity)
25-
26- We provide an [ apptainer container] ( https://apptainer.org/ ) . The definition file needs to be modified to
27- include the path to kmc, see the fifth and sixth line. The container is built by running:
27+ The container is built by running:
2828
2929``` shell script
3030sudo apptainer build vlmc-from-kmers.sif vlmc-from-kmers.def
3131```
3232
33- ### Manually
33+ ### Compiling from Source (recommended)
3434
35- #### Dependencies:
35+ To compile the program, please first download all dependencies.
3636
37+ #### Installing Dependencies as
38+
39+ E.submodules
40+
41+ ``` shell script
42+ git submodule update --init --recursive
43+ ```
44+ or alternatively install the following dependendencies manually on your Linux, Unix, or MacOS system,
45+
46+ #### Installing Dependencies using a package manager
3747* intel TBB (` tbb ` in brew, ` libtbb-dev ` on debian).
3848* boost iostreams (` boost ` in brew, ` libboost-dev ` on debian).
3949* hdf5 (` hdf5 ` in brew, ` libhdf5-dev ` on debian).
4050* eigen3 (` eigen ` in brew, ` libeigen3-dev ` on debian).
4151* cmake (` cmake ` in brew, ` cmake ` on debian).
4252
53+ E.g. on a Linux system with package manager apt (after updating apt and build-essential)
54+ ``` shell script
55+ sudo apt install libtbb-dev libboost-dev libhdf5-dev libeigen3-dev cmake
56+ ```
57+
4358#### Build
4459Create a build directory, configure with cmake and build:
4560
0 commit comments