leeyang / drfold Goto Github PK
View Code? Open in Web Editor NEWHome Page: https://zhanggroup.org/DRfold/
Home Page: https://zhanggroup.org/DRfold/
INSTALLATION AND IMPLEMENTATION OF DRfold (Copyright 2022 by Zhang Lab and Freddolino lab, University of Michigan, All rights reserved) DRfold can be used under The MIT License !! This version does not include trained models, users need to manually download them (see How to install the DRfold? ). 1. What is DRfold? DRfold (Deep RNA fold) is a program for RNA tertiary structure prediction based on deep learning potentials. 2. How to install the DRfold? 1) Third-party softwares 1. PETfold (https://rth.dk/resources/petfold/download.php) # Please install PETfold v2.0, we thank juychen and luwei0917 for the test and feedback! 2. The ViennaRNA Package (https://www.tbi.univie.ac.at/RNA/) 3. Arena (https://github.com/pylelab/Arena)# If bin/Arena does not work, try to compile from thsi source 2) Prerequisites 1. Linux systems 2. Python3 with numpy and scipy 3. pytorch (https://pytorch.org/get-started/locally/) Anaconda is recommended to set up python environments 4. OpenMM (https://openmm.org/) 3) Localization (We thank Martinovic Ivona for improving the document) 1. Modify DRfold/scripts/Features.py to set 'petfoldbin' and 'ViennaRNAbin' properly, according to your own installation.(set the variables to executable files, not just bin/ folder, meaning '/home/username/ViennaRNA/bin/RNAfold' and '/home/username/PETfold/bin/PETfold'). 2. Modify the PETFOLDBIN path in DRfold/DRfold.sh (Line 6) 3. Modify the PYTHON path in DRfold/DRfold.sh (Line 7) 4. Move the compile Arena bin file to bin/, (if the built-in version does not work) 4. Set executable permission to the bin file in DRfold/bin/. 4) Model file downloads 1. Download https://zhanggroup.org/DRfold/DRfold_models.zip and unzip the file 2. Simply merge the files in unzipped 'DRfold' to the current path. Now downloaded model files shouold be available under DRfold/DeepE2EPotential/model and DRfold/DeepGeoPotential/config*/model 3. Bug report: Please visit https://zhanglab.ccmb.med.umich.edu/bbs/?q=forum/2 4. How to run the DRfold? bash DRfold.sh [fastafile] [outputdir] fastafile: The input fastafile containing the query sequence outputdir: Output file dir The running time for a regular RNA seqeunce (~50 nts) should be around 1 hour 5. Example You can test by fowllowing commands: ' bash DRfold.sh test/seq.fasta test/DRfold_out ' It will generate several files in less than 2 hours: ' DPR.pdb ': is the final results of DRfold Other by-products: ' DPR_{0~5}.pdb ' : raw structures from 6 end-to-end models (numbers are not related to the rankings) ' geo.npy ' : averaged geometry predictions from 3 geometry models, can be accessed by "np.load('geo.npy',allow_pickle=True).item()" Reference Yang Li, Chengxin Zhang, Chenjie Feng, Robin Pearce, Peter L. Freddolino, Yang Zhang. Integrating end-to-end learning with deep geometrical potentials for ab initio RNA structure prediction. Nat Commun 14, 5745 (2023). https://doi.org/10.1038/s41467-023-41303-9
Hi,
Thanks for your good work on the RNA structure prediction.
However, I found some problems installing the PETfold package.
On the homepage, you suggest
2. How to install the DRfold?
1) Third-party softwares
1. PETfold (https://rth.dk/resources/petfold/download.html)
2. The ViennaRNA Package (https://www.tbi.univie.ac.at/RNA/)
3. Arena (https://github.com/pylelab/Arena)# If bin/Arena does not work, try to compile from thsi source
The mentioned version of the PETfold was 1.0 in 2008.
Your shell script will fail because there is no option PETfold -r in version 1.0.
You should use the version 2.0/2.1 here:
version 2.1
and
export PETFOLDBIN=#Your PETFOLDBIN path here#
Hope you can update the tutorial.
ModuleNotFoundError
No module named 'rigid'
File ".../DRfold/PotentialFold/Fold.py", line 13, in
import a2b,rigid
ModuleNotFoundError: No module named 'rigid'
Dear Yang,
I hope this message finds you well. I am reaching out to express my admiration for your work on DRfold. It is quite remarkable and has greatly piqued my interest.
I have been diligently trying to get DRfold up and running; however, I've encountered a snag and would sincerely appreciate your guidance.
In line with your remarks in a specific issue, I understood that you utilized PETfold v2.0 and it functioned as expected. Following the same path, I installed PETfold v2.0. The installation guide asked for specific settings related to 'HPATH' and 'LPATH' within the 'Makefile', directing them to the locations of certain Vienna RNA Package files:
PETfold needs the Vienna RNA Package (see [2]) installed on your
computer. You have to edit the variables 'HPATH' and 'LPATH' at the
top of the 'Makefile' in the 'src' subfolder by setting them to the
location of the Vienna RNA Package header files and the libRNA.a file.
The source code of Pfold is part of the PETfold program (thanks to
Bjarne Knudsen) and is compiled together with it.
$ cd src
$ make clean
$ make
If you don't start PETfold directly from the bin folder then you have
to set the environment variable PETFOLDBIN to the path of Pfold
grammar files scfg.rate and article.grm:
$ export PETFOLDBIN='<PATH>/bin'
Initially, the 'Makefile' had these defaults:
HPATH = /opt/ViennaRNA/2.0.7/include/ViennaRNA/
LPATH = /opt/ViennaRNA/2.0.7/lib/libRNA.a
Considering I have ViennaRNA v2.6.4 installed (the most recent version provided officially), the file directory structure notably differs from the default version, v2.0.7. Here are my speculative adjustments for the paths:
HPATH = /${mypath}/ViennaRNA/2.0.7/include/ViennaRNA/
LPATH = /${mypath}/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/libRNA.a
Upon executing make clean
and make
, the latter operation unfortunately resulted in an error. Here’s a part of the log close to the end for your reference:
/mnt/nas2/home/yangnianzu/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/../libsvm-3.31/svm.cpp:1330: undefined reference to
`__cxa_throw_bad_array_new_length'
/usr/bin/ld: /mnt/nas2/home/yangnianzu/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/../libsvm-3.31/svm.cpp:1329: undefined
reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /mnt/nas2/home/yangnianzu/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/libRNA.a(svm.o): in function `SVC_Q::S
VC_Q(svm_problem const&, svm_parameter const&, signed char const*)':
/mnt/nas2/home/yangnianzu/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/../libsvm-3.31/svm.cpp:1278: undefined reference to
`__cxa_throw_bad_array_new_length'
/usr/bin/ld: /mnt/nas2/home/yangnianzu/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/../libsvm-3.31/svm.cpp:1277: undefined
reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /mnt/nas2/home/yangnianzu/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/../libsvm-3.31/svm.cpp:1278: undefined
reference to `__cxa_throw_bad_array_new_length'
/usr/bin/ld: /mnt/nas2/home/yangnianzu/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/../libsvm-3.31/svm.cpp:1277: undefined
reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /mnt/nas2/home/yangnianzu/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/libRNA.a(svm.o):(.data.rel.ro._ZTI7QMa
trix[_ZTI7QMatrix]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
/usr/bin/ld: /mnt/nas2/home/yangnianzu/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/libRNA.a(svm.o):(.data.rel.ro._ZTI6Ker
nel[_ZTI6Kernel]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/bin/ld: /mnt/nas2/home/yangnianzu/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/libRNA.a(svm.o):(.data.rel.ro._ZTI6Sol
ver[_ZTI6Solver]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
/usr/bin/ld: /mnt/nas2/home/yangnianzu/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/libRNA.a(svm.o):(.data.rel.ro._ZTI9Sol
ver_NU[_ZTI9Solver_NU]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/bin/ld: /mnt/nas2/home/yangnianzu/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/libRNA.a(svm.o):(.data.rel.ro._ZTI5SVC
_Q[_ZTI5SVC_Q]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/bin/ld: /mnt/nas2/home/yangnianzu/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/libRNA.a(svm.o):(.data.rel.ro._ZTI11ON
E_CLASS_Q[_ZTI11ONE_CLASS_Q]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/bin/ld: /mnt/nas2/home/yangnianzu/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/libRNA.a(svm.o):(.data.rel.ro._ZTI5SVR
_Q[_ZTI5SVR_Q]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/bin/ld: /mnt/nas2/home/yangnianzu/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/libRNA.a(svm.o):(.data.rel.ro._ZTV6Ker
nel[_ZTV6Kernel]+0x10): undefined reference to `__cxa_pure_virtual'
/usr/bin/ld: /mnt/nas2/home/yangnianzu/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/libRNA.a(svm.o):(.data.rel.ro._ZTV6Ker
nel[_ZTV6Kernel]+0x18): undefined reference to `__cxa_pure_virtual'
/usr/bin/ld: /mnt/nas2/home/yangnianzu/DRfold/ViennaRNA-2.6.4/src/ViennaRNA/libRNA.a(svm.o):(.data.rel.local.DW.re
f.__gxx_personality_v0[DW.ref.__gxx_personality_v0]+0x0): undefined reference to `__gxx_personality_v0'
collect2: error: ld returned 1 exit status
make: *** [Makefile:15: ../bin/PETfold] Error 1
At this juncture, I am kindly seeking your advice. Could you please specify which version of ViennaRNA was in your use? Also, how did you determine the settings for LPATH and HPATH?
Thank you in advance for your time and assistance. I am looking forward to your valuable guidance.
Best regards,
Nianzu Yang
I want to know what features are in the base.npy. Anyone can tell me?
My environment seems to be set up successfully. Then, I ran the test command you provided:
bash DRfold.sh test/seq.fasta test/DRfold_out
The terminal output is as follows, always displaying messages like Bad direction ...
and Line search cannot locate an adequate point after MAXLS
. Are these normal outputs?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.