├── images ├── figure1.png └── figure2.png ├── testset └── native_structures_103.zip └── README.md /images/figure1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thuxugang/opus_fold/HEAD/images/figure1.png -------------------------------------------------------------------------------- /images/figure2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thuxugang/opus_fold/HEAD/images/figure2.png -------------------------------------------------------------------------------- /testset/native_structures_103.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thuxugang/opus_fold/HEAD/testset/native_structures_103.zip -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OPUS-Fold 2 | 3 | 4 | 5 | We propose a protein folding framework, named OPUS-Fold, which can integrate various methods for subproblems in protein structure prediction to contribute to folding. OPUS-Fold is based on torsion-angle sampling. After each sampling step, it reconstructs the structure and estimates the model quality with an energy function that is formed by combining many different constraining terms designed either by ourselves or by others in literature. OPUS-Fold balances the accuracy and the efficiency, delivers good results in a short time, and leaves more space for including the results of other subproblem methods. Moreover, OPUS-Fold also contains a fast side-chain modeling method OPUS-Rota2 (J. Chem. Theory Comput. 2019, 15 (9), 5154-5160), which enables a speedy construction of all-atom atomic models during the folding process that allows the usage of all-atom-required subproblem methods. In summary, OPUS-Fold provides a protein folding platform for incorporating the results from various subproblem methods, including those containing non-differentiable information such as partial experimental data. 6 | 7 | ## Framework of OPUS-Fold 8 | 9 | 10 | 11 | ## Energy terms 12 | 13 | ### OPUS-TA (Torsion-Angle-Sampling Database) 14 | 15 | The information of OPUS-TA can be found [here](https://github.com/thuxugang/opus_refine). 16 | 17 | ### OPUS-CSF (Protein Potential) 18 | 19 | The information of OPUS-CSF can be found [here](https://github.com/thuxugang/opus_csf). 20 | 21 | ### OPUS-Rota2 (Side-Chain Modeling Method) 22 | 23 | The information of OPUS-Rota2 can be found [here](https://github.com/thuxugang/opus_rota2). 24 | 25 | ### Third-Party Programs (Already included) 26 | 27 | Protein Potentials: KORP ANDIS ITDA 28 | 29 | Secondary Structure Measurement: DSSP 30 | 31 | ### Third-Party Results (Should be added by users) 32 | 33 | Contact Map: RaptorX-Contact 34 | 35 | Inital Structure: RaptorX-Contact (CoinFold) 36 | 37 | Torsion Angles & ASA & SS: SPOT-1D 38 | 39 | ## Test Set 40 | 41 | The 103 native structures can be found in [here](https://github.com/thuxugang/opus_fold/tree/master/testset) 42 | 43 | ## Performance 44 | 45 | ### Performance of OPUS-Fold Using Different Energy Functions 46 | 47 | To analyze the contribution of individual terms in the energy function, we introduce them into the energy function of OPUS-Fold one at a time accumulatively, and evaluate the performance in terms of folding accuracy. 48 | 49 | ||TM-score| RMSD| F1/S| F1/M| F1/L| MAE(ϕ)| MAE(ψ)| Time | 50 | |:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:| 51 | |OPUS-TA|0.1717|13.2055 | 0.1010 | 0.0625| 0.0411| 21.90 | 40.54 | 1m| 52 | |+Torsion Angles (SPOT-1D)|0.2603 | 14.0513 | 0.2863 | 0.1470 | 0.0373 | 13.13 | 15.15 | 1m| 53 | |+OPUS-CSF|0.4457 | 8.1560 | 0.6678 | 0.4821 | 0.2098 | **11.24** | **12.59** | 1m| 54 | |+Contact Map (RaptorX)|0.7037 | 1.9991 | 0.7697 | 0.7283| 0.6797| 12.60 | 14.52 |1m37s| 55 | |+Inital Structure (RaptorX)|0.7261 | 1.8069 | 0.7885 | 0.7648| 0.7117| 14.06 | 17.58 | 1m39s| 56 | |+LJ potential|0.7299 | 1.7585 | 0.7886| 0.7642 | 0.7165 | 14.07 | 17.62 | 2m41s| 57 | |+OPUS-Rota2|0.7331|1.7459 | 0.7911| 0.7657| 0.7193 | 14.06 | 17.61 | 2m42s| 58 | |+SS (SPOT-1D)|0.7351 | 1.7293 | 0.7959| 0.7688 | 0.7223 | 14.06 | 17.63 |5m47s| 59 | |+ASA (SPOT-1D)|**0.7407** | **1.6657** | **0.7983** | **0.7753**| **0.7317**| 14.14| 17.67| 5m48s| 60 | |SPOT-1D|-| -| -| -| - |13.13 | 15.15 | -| 61 | |RaptorX-Contact|- |- |0.7417 | 0.7451 | 0.7016 | -| - |-| 62 | |Inital Structure (RaptorX)| 0.6595| 2.3150| 0.6754| 0.6839| 0.6468| 21.63 | 29.71 | -| 63 | 64 | 65 | ### Introducing Different Potentials into the Selection Step 66 | 67 | Instead of introducing the constraining term into the energy function to participate in the optimization of the simulated annealing (SA) algorithm, the constraining term that is relatively time-consuming can be added to the selection step of the genetic algorithm (GA). 68 | 69 | ||TM-score| RMSD|F1/S| F1/M| F1/L| Time| 70 | |:----:|:----:|:----:|:----:|:----:|:----:|:----:| 71 | |OPUS-Fold| 0.7407| 1.6657| 0.7983| 0.7753| 0.7317| 5m48s| 72 | |w/KORP|0.7425 | 1.6489 | 0.7944 | 0.7775 | 0.7338 | 14m| 73 | |w/IDTA|0.7439 | 1.6635 | 0.7962 | 0.7726 | 0.7369 | 15m| 74 | |w/ANDIS|0.7459| 1.6440 | 0.7991 | 0.7812| 0.7373 | 1h20m| 75 | 76 | 77 | ## Dependency 78 | 79 | ``` 80 | Docker 18.09.7 81 | ``` 82 | 83 | ## Usage 84 | 85 | ***The data in each line of the input file should be separated by a single ' ' or '\t'. '#' should be added at the beginning of each comment line.*** 86 | 87 | 1. Download OPUS-Fold docker image. 88 | 89 | The docker image we used is hosted on [Baidu Drive](https://pan.baidu.com/s/1LdyJdkO7VebpORY2Fl7lmg) with password `z2xy`. Also, it can be downloaded directly from [Here](http://ma-lab.rice.edu/dist/opus_fold_docker.tar). 90 | 91 | 2. Docker image preparation. 92 | ``` 93 | cat opus_fold_docker* | tar xvz 94 | docker load -i opus_fold_docker.tar 95 | docker run -it --name fold opus_fold:1.0 96 | docker start fold 97 | docker attach fold 98 | ``` 99 | 100 | 3. Run MongoDB. 101 | ``` 102 | cd /home/mongodb/bin 103 | ./mongod -dbpath /home/mongodb/data/db -logpath /home/mongodb/log/mongodb.log -logappend -fork -port 27017 104 | ``` 105 | 4. Run OPUS-Fold. 106 | 107 | ``` 108 | cd /home/opus_fold 109 | ./opus_fold 110 | ``` 111 | Please put the constrained contact map files and their corresponding list into `constains_files/contact_maps`, constrained torsional angles files and their corresponding list into `constains_files/torsion_angles` and initial structures files and their corresponding list into `constains_files/init_structures`. 112 | 113 | ***If you want to install OPUS-Fold in your environment, please download the source code and compile it. The source code is under the [source branch](https://github.com/thuxugang/opus_fold/tree/src).*** 114 | 115 | ## Reference 116 | ```bibtex 117 | @article{xu2020opus2, 118 | title={OPUS-Fold: An Open-Source Protein Folding Framework Based on Torsion-Angle Sampling}, 119 | author={Xu, Gang and Wang, Qinghua and Ma, Jianpeng}, 120 | journal={Journal of Chemical Theory and Computation}, 121 | year={2020}, 122 | publisher={ACS Publications} 123 | } 124 | ``` 125 | --------------------------------------------------------------------------------