# PEP-FOLD-dist # This repository is for the generation of a docker image of PEP-FOLD (tested for Linux distributions) # LICENSE: See Licence_PEP-FOLD.pdf (in brief, usage is granted for non-profit organizations). #### The following instructions suppose you have docker installed on your machine. #### To get PEP-FOLD work, you need to build 3 images: 1. pyppp3-light 2. pepfold-core 3. oscar-star (optional) # Oscar star is a software developed by Liang and co-workers. https://doi.org/10.1093/bioinformatics/btr482 ## 1. Authenticate with our container registry using a token ``` docker login docker-registry.rpbs.univ-paris-diderot.fr -u pepfold-public-pull -p gldt-n5e6f6cnyMQcgsLGDgYH ``` ## 2. Pull the Docker images ``` docker pull docker-registry.rpbs.univ-paris-diderot.fr/tuffery/pep-fold-dist:pyppp2-light docker pull docker-registry.rpbs.univ-paris-diderot.fr/tuffery/pep-fold-dist:pepfold-core docker pull docker-registry.rpbs.univ-paris-diderot.fr/tuffery/pep-fold-dist:oscar-star (Optional) ``` IMPORTANT: (i) It is best to tune your computer to run docker as a standard user. See: https://docs.docker.com/engine/install/linux-postinstall/ This will solve many issues encountered if running the pepfold4.py script. (ii) docker is sensitive to blanks in paths. In case of "docker: invalid reference format." error, please check. (iii) Note By default PEP-FOLD is a backbone builder. Side chain positioning is basic. Traditionnaly, PEP-FOLD has used oscar-star to position side chains. Oscar-star has been developed by the D. Stanley's group. See Shide Liang, Dandan Zheng, Chi Zhang, Daron M. Standley, Fast and accurate prediction of protein side-chain conformations, Bioinformatics, Volume 27, Issue 20, October 2011, Pages 2913–2914, https://doi.org/10.1093/bioinformatics/btr482 ). The docker image only contains the binaries/libraries to position the side chains on the models. ## 3. Install PyPDB && Fasta (need to install pip / python distutils) ``` cd ${ROOT_DIR}/packages/Fasta3 python setup.py install --user cd ${ROOT_DIR}/packages/PyPDB3 python setup.py install --user ``` ## 4. run PEP-FOLD4 using the pep-fold4.py script ``` ${ROOT_DIR}/pep-fold4.py --help cd ${ROOT_DIR}/test ../pep-fold4.py -s 1jbl.fst -l test ``` You should have pdf files such as test-00099_bestene1-mc.pdb and trj files such as test-00099_bestene1-mc.trj generated. IF THE PROGRAM STOPS AFTER: Sequence set: GRCTKSIPPICFPD you probably have an issue with SELINUX. See section 5 below. ## 5. running directly using the docker images. PEP-FOLD consists of two steps: 1/ The SA profile generation from the amino acid sequence (pyppp3)(FASTA format). 2/ The 3D generation from the amino acid sequence (RAW format) and the SA profile (pepfold-core)(.prob file generated by pyppp3). Please pay attention to the difference between using 1uao.fst (pyppp3) and 1uao.seq (pepfold-core). A typical way to run them by hand is like: cd ${ROOT_DIR}/test docker run -it --rm -v $(pwd):$(pwd):z -u $(id -u):$(id -g) -w $(pwd) pyppp3-light PyPPP3Exec -s 1uao.fst --2012 -l peptest docker run -it --rm -v $(pwd):$(pwd):z -u $(id -u):$(id -g) -w $(pwd) pepfold-core CppBuilder --objective sopep --generator fbt --action pepbuild --sOPEP_version 2 --nSim 100 --iSeq 1uao.seq --unbias --iPrf peptest.svmi8.27.prob --label peptest --nc 40 If the latter stops after displaying a sequence, you probably have selinux installed and something is going wrong. You could try instead (-z moved for -Z): docker run -it --rm -v $(pwd):$(pwd):Z -u $(id -u):$(id -g) -w $(pwd) pepfold-core CppBuilder --objective sopep --generator fbt --action pepbuild --sOPEP_version 2 --nSim 100 --iSeq 1uao.seq --unbias --iPrf peptest.svmi8.27.prob --label peptest --nc 40 but this is not recommended ... look for docker "Configure bind propagation". If you want to go for -Z, you could edit the pepfold4.py and change the :z for :Z line 1063 # # Considering large numer of sequences. # The limiting step is the profile generation steps (pyppp3). For a large number of sequence, possible directions are: 1/ dispach pepfold4 using e.g. slurm, after having configuered docker on the nodes. 2/ there is also a dameon version of PyPPP3-light combining PyPPP3d (daemon) and PyPPP3c (client) that saves much time by avoiding to relaunch the banks for each prediction. The PyPPP3ListExec aimas at that. ``` cd test docker run -it --rm -v $(pwd):$(pwd):z -u $(id -u):$(id -g) -w $(pwd) pyppp3-light PyPPP3ListExec 20 --iSeqList seqList.fst -l toto ``` This will start a server, iterate over the multiple sequences, then close the server. Note: - The first argument passed to PyPPP3ListExec is a delay to wait to make sure the server is listening. It depends on your system. 10 is usually OK, but 20 could be required. - Specifying -l toto, the results will be labelled as toto_1 (first sequence of the file) up to toto_X (last sequence). - Not specifying -l, the results will be labelled according to sequence labels in the file. Since the fasta format is versatile, the expected label can sometimes be misleading. Prefer specifying the sequences using "> seq1", not ">dd|seq1|comment". # # Important options # As for pyppp3, the only option to consider is the label. Using PyPPP3Exec, the default label is "PPP". Using PyPPP3ListExec, see above. As for pepfold-core, the exhaustive list of available options can be obtained using -h. By default, just specifying the sequence (.seq) and the profile (.prob) with the examples above is enough. If you want to tune pH dependence, you should specify --sOPEP_use_DH, --sOPEPpH and optionally --sOPEPionicstr, --sOPEPneutral_ext. In theory, the defaults in use for other parameters are enough. Note: - pepfold-core supports openmp. You can specify the number of threads using the -nc option (scaling is excellent). - You can save the intermediate models to disk (before Monte-Carlo) by specifying --outGreedyPDB. - you can generate all atom models specifying --aa_models. Please remind this is very rough side chain positioning. - the five best models are in the file xxx-5bestmodels.pdb, and teh clusters in the file xxx_clusters.txt.