代码改变世界

RoseTTAFold建模测试psipred出现buffer overflow detected错误解决办法

2021-07-20 21:13  丨o聽乄雨o丨  阅读(736)  评论(0编辑  收藏  举报

安装RoseTTAFold完成后,进入example目录测试建模时,报错如下:

~/Programs/RoseTTAFold-main/input_prep/make_ss.sh: line 24: 31151 Aborted
                 (core dumped) psipred $ID.mtx $DATADIR/weights.dat $DATADIR/weights.dat2 $DATADIR/weights.dat3 > $ID.ss

由于psipred运行错误导致预测二级结构出现错误,也不能继续向下执行。

解决方法如下:

1. 首先到github下载psipred源码(https://github.com/psipred/psipred):

1 git clone https://github.com/psipred/psipred
2 cd psipred

2. 进入 src 目录后,修改 sspred_avpred.c 文件第 241 行,buff size 由256修改到512

修改

1    char            buf[256], *p;

1    char            buf[512], *p;

3. 修改完成后,在src目录重新编译产生新的可执行文件:

1 make

4. 将新产生的四个可执行文件(psipass2, psipred, seq2mtx, chkparse)覆盖到目录 ~/miniconda3/envs/RoseTTAFold/bin :

1 cp ~/[dirname]/psipred/src/seq2mtx ~/[dirname]/miniconda3/envs/RoseTTAFold/bin
2 cp ~/[dirname]/psipred/src/psipass2 ~/[dirname]/miniconda3/envs/RoseTTAFold/bin
3 cp ~/[dirname]/psipred/src/psipred ~/[dirname]/miniconda3/envs/RoseTTAFold/bin
4 cp ~/[dirname]/psipred/src/chkparse ~/[dirname]/miniconda3/envs/RoseTTAFold/bin

再次运行 ../run_pyrosetta_ver.sh input.fa . 

到此问题应该就解决了。