Giter VIP home page Giter VIP logo

drfold's Introduction

		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

drfold's People

Contributors

leeyang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

drfold's Issues

Installation of PETfold in the readme is misdirecting

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.

Questions about installing PETfold

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

Issues with Terminal Output from Test Command

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?

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.