dancsi / OrthoCCTools

Computational coiled-coil peptide design toolkit, written in modern C++
https://www.dancsi.net/icipa
MIT License
3 stars 2 forks source link
computational-chemistry research-project

OrthoCCTools - tools for constructing orthogonal sets of coiled coils

This repo contains several interconnected tools for constructing orthogonal (sub)sets of coiled coils.

Build instructions

The code requires a functional C++20 compiler, Python 3 development libraries and OpenMP. It can be build with CMake in the following way:

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX="$PWD" ..
cmake --build . --config Release
cmake --install . --config Release

The only exception to this is jsccscore, which is built separately using the WASI SDK. See its README.md for more details.

The build was tested on Windows 10 running Visual Studio 16.8.5 and Python 3.8.5 (Anaconda) as well as Ubuntu 20.10 running GCC 10.2.0 and Python 3.8.6.

Usage instructions

First, we generate an initial set of 4-heptad peptides.

mkdir data
python src/util/01_generate.py >data/full4096.fasta

Next, we compute the pairwise scores using fastscore

./build/fastscore data/full4096.fasta

You will see 3 additional files in your data/ directory: full4096.bin, full4096.align.bin and full4096.orientation.bin. These files contain the matrices of interaction scores, as well as the "best" alignment and orientation, respectively. You can view the interaction scores with the 02_plot_score_matrices.py utility:

python src/util/02_plot_score_matrices.py data/full4096.bin

In order to construct the interaction graph, you need to compute the interaction score thresholds. They can be computed using 03_recommend_cutoff.py:

python src/util/03_recommend_cutoff.py data/full4096.bin

Now, you can use these cutoffs to construct the interaction graph and find an orthogonal set in it:

./build/solver data/full4096.bin --binding-cutoff=-8.5 --nonbinding-cutoff=-7

The solver will output the orthogonal set to a .pairs file with the same name as the score matrix. In our case, the largest orthogonal set will be saved in data/full4096.pairs.