├── 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 |
--------------------------------------------------------------------------------