Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to build the software #1

Open
ShuangQiuac opened this issue Apr 17, 2019 · 13 comments
Open

Unable to build the software #1

ShuangQiuac opened this issue Apr 17, 2019 · 13 comments

Comments

@ShuangQiuac
Copy link

Hi, I downloaded the software, and use the following command to build it:
mkdir build
cd build
cmake ..
make
But it returns the following error:
CMake Error: File /ext/kmerind/src/config/config.hpp.in does not exist.

Can you suggest the way to build and use it? Thanks!

@tcpan
Copy link
Member

tcpan commented Apr 18, 2019 via email

@ShuangQiuac
Copy link
Author

ShuangQiuac commented Apr 18, 2019 via email

@tcpan
Copy link
Member

tcpan commented Apr 18, 2019

Hi, Shuang,
It looks like I forgot to turn on the "Build Example Applications" by default.

Can you try to use ccmake instead of cmake

ccmake src_dir

which will present a graphical user interface for configuring the project. The first item should be BUILD_EXAMPLE_APPLICATIONS. change that to "ON". then press c to configure and g to "generate and exit".

Now this is going to create a somewhat large number of targets (what I needed during my evaluation). You can see a list of the build target by

cmake --build . --target help

At this point if you run "make" (or "make -j 4"), everything will be built and it might take a while, or you can run "make {target}", where {target} is one of the targets listed. All the targets came about due to c++ templating and a desire to reduce individual binary size and to avoid excessive branching in the code.

Now some explanation of the target naming conventions. Here are a couple of example targets

"compact_debruijn_graph_fastq_A4_K21_freq_clean_recompact_incr"
"compact_debruijn_graph_fastq_A4_K31_freq_minimizer"

fastq: means it operates on fastq files. We can easily support fasta files as well - I'll explain how in a little bit.
A4: standard 2bit DNA encoding. The other alternative is A16, which supports 4 bit DNA encoding (IUPAC)
K21: kmer length. the cmake script is currently configured with 21, 31,51, 55, and 63. We can easily support others as well.
freq: this is my "code name" for an optimized graph construction algorithm. You should by default choose binaries with this label.
clean and clean_recompact: bubbles and deadends are removed and chains are recompacted. I used some simple criteria for identifying bubbles and deadends, and they may not be what you want. The code is set up so that an application developer can define their own criteria, but this requires some c++ coding.
minimizer: attempt at using minimizers for data distribution across multiple nodes - not performing well yet. You should avoid these.
incr: for when the input files pushes memory limit. This is data dependent (number of unique k-mers), but you may want to try using these incremental version if you have multiple files in your dataset and the fastq files are more than 1/16 of the total memory (a guess).

To support FASTA files and other k values, we just need to change the CMakeLists.txt file to generate the appropriate targets. I can show you how to do those.

To summarize quickly, use the versions with "A4" and "freq" labels. If you think you'll run out of memory, try the "incr" version. If you need fasta file or other k-values support, let me know. If you need to remove bubbles and dead ends, we should talk.

Making the configure process easier has been on my things to do for a while. I'll try to find some time to work on this.

Thanks

@ShuangQiuac
Copy link
Author

ShuangQiuac commented May 1, 2019 via email

@tcpan
Copy link
Member

tcpan commented May 1, 2019 via email

@ShuangQiuac
Copy link
Author

ShuangQiuac commented May 1, 2019 via email

@tcpan
Copy link
Member

tcpan commented May 1, 2019 via email

@ShuangQiuac
Copy link
Author

ShuangQiuac commented May 3, 2019 via email

@tcpan
Copy link
Member

tcpan commented May 3, 2019 via email

@ShuangQiuac
Copy link
Author

ShuangQiuac commented May 24, 2019 via email

@tcpan
Copy link
Member

tcpan commented May 31, 2019 via email

@ShuangQiuac
Copy link
Author

ShuangQiuac commented Jun 6, 2019 via email

@tcpan
Copy link
Member

tcpan commented Jun 6, 2019 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants