An exhaustive method based on high-performance GPU computing to reveal degenerate oligonucleotide motifs written in the 15-letter IUPAC code.
- CUDA 10 and higher (https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html)
- Cmake 3.17 and higher (https://cmake.org/download/)
- GCC 6 and higher
git clone [email protected]:friofry/motif_finder_cuda.git
or download the latest zip archive:
curl -L https://github.com/friofry/motif_finder_cuda/archive/refs/tags/v1.0.zip --output v1.0.zip
Run these commands in the source code directory:
- Make a build directory
mkdir build
cd build
- Configure the project
cmake -DCMAKE_BUILD_TYPE=Release ..
To provide the exact path to NVIDIA CUDA SDK use the following command:
cmake -DCUDA_SDK_ROOT_DIR=<cuda_sdk_path> -DCMAKE_BUILD_TYPE=Release ..
- Build
cmake --build . -j
The binary is in motif_finder_gpu
folder
init.ini file example:
1 Complementarity. 0 - forward strand. 1 - forward + reverse strand.
8 Minimum score
35 Maximum presence of motif for random reasons in the positive set of sequences [0-100]
5 Minimum presence of motif in the positive set of sequences [0-100]
test_12.fst File with positive set of sequences
0 0 - neutral frequencies, 1 - real nucleotide frequencies in the set of sequences [0, 1]
0 [deprecated]
10 Maximum number of result motifs. 0 - reveal all significant motifs [0, ]
0 Markov chain order (0-Bernulli, 1-dinucleotide, 2-trinucleotide), when using real nucleotide frequencies [0-3]
0 [deprecated]
0 [deprecated]
0.fst File with contrast set of sequences
90 Maximum score in a contrast set of sequences
0 [deprecated]
0 Output results with Bonferroni correction. 0 - without correction , 1 - use correction [0, 1]
a.txt Output file
0 Output results in integer format (0 - real values, 1 - integer values). [0, 1]
1 Skip motifs that coincide with the previous ones with a shift. [0, 1]
- Put init.init, motif_finder_gpu and positive, negative sequences to the same directory
- run
./motif_finder_gpu
- Navigate to test folder:
cd ../test_data/test_0
- Copy motif_finder_gpu to that folder
- Run the motif_finder_gpu
./motif_finder_gpu
See details here
See details here
MotifFinder is licensed under the MIT License. MotifFinder also uses a number of third party libraries:
https://github.com/jarro2783/cxxopts https://github.com/jarro2783/cxxopts/blob/master/LICENSE (MIT license)
https://github.com/nlohmann/json https://github.com/nlohmann/json/blob/develop/LICENSE.MIT (MIT license)