Giter Site home page Giter Site logo

moderna's Introduction

ModeRNA - A program for comparative RNA modeling

Copyright 2009 by Magdalena Rother, Kristian Rother, Tomasz Puton and Janusz M. Bujnicki

Version 1.7.1

Homepage: iimcb.genesilico.pl/moderna

Technical Support: [email protected]

Build Status

Build Status

Installation Instructions

1. Quick guide

python setup.py install

2. Requirements

ModeRNA runs on any modern Windows or Linux PC. It requires the Biopython library.

3. Installation

3.1 Installing ModeRNA on Linux

To install ModeRNA on Linux, you need to:

  • Download the source distribution [Moderna Version 1.7.1 (source)].

  • Unzip the archive. A catalog with the main program moderna.py is created.

  • Make sure Python 2.6 or a higher version is installed. (on Ubuntu Linux, use sudo apt-get install python.

  • Make sure Numpy is installed (sudo apt-get install python-numpy).

  • Make sure BioPython is installed (sudo apt-get install python-biopython).
    (tested with BioPython 1.53-1.58)

  • Make sure the moderna/moderna.py file is executable:
    chmod a+x moderna/moderna.py

  • Add the path to the moderna directory to your PYTHONPATH variable,e.g.:
    export PYTHONPATH=$PYTHONPATH:/home/lena/moderna/

  • run:
    python setup.py install

  • After this, you can from any location write:

    python

    from moderna.moderna import *

3.2 Installing ModeRNA on Windows

To install ModeRNA on Windows, you need to:

  • Download the source distribution [Moderna Version 1.7.1 (source)].

  • Unzip the archive. A catalog with the main program moderna.py is created.

  • Make sure that these libraries are installed:
    (all available from iimcb.genesilico.pl/moderna)

    • Python 2.6 or a higher
    • Numpy
    • BioPython (tested with BioPython 1.53 - 1.58)
  • Run from the terminal:

    C:/Python26/python.exe setup.py install

  • After this, you can write in the Python shell:

    from moderna.moderna import *

4. Web Interface and Docker Container

There is a very simple web interface based on Flask delivered with ModeRNA:

cd server/
python server.py

Also, if you are using Docker, you can deploy ModeRNA as a local sevice:

docker pull krother/moderna
docker run -t -i -p 5000:5000 krother/moderna
cd moderna/server
python server.py

Which should run the server inside the Docker environment.

5. Legal Disclaimer

ModeRNA is released under the GPL license, a copy of which is included in the distribution (See LICENSE_GPL.TXT for details). For the files in the PDB/ directory, the Biopython License applies as well. See PDB/LICENSE_BIOPYTHON.TXT for details).

This software is provided "as-is". There are no expressed or implied warranties of any kind, including, but not limited to, the warranties of merchantability and fitness for a given application. In no event shall the authors be liable for any direct, indirect, incidental, special, exemplary or consequential damages (including, but not limited to, loss of use, data or profits, or business interruption) however caused and on any theory of liability, whether in contract, strict liability or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.

The authors take no responsibility for damage caused by this program or its components.

6. Contributors

  • Magdalena Rother - implementation
  • Pawel Piatkowski - implementation
  • Kristian Rother - architecture and unit tests
  • Tomasz Puton - model validation and testing
  • Janusz Bujnicki - concept and supervision

7. Acknowledgements

Credit goes to our lab colleagues Pawel Skiba, Piotr Byzia, Irina Tuszynska, Joanna Kasprzak, Jurek Orlowski, Pawel Lukasz, Tomasz Osinski, Marcin Domagalski, Anna Czerwoniec, Stanislaw Dunin-Horkavic, Marcin Skorupski, and Marcin Feder for their comments and constructive criticism during development.

The PDB parser ued by Moderna uses BioPython with kind support by Thomas Hamelryck. The unit test framework was brought near to us by Sandra Smit, Rob Knight, and Gavin Huttley. We also would like to thank Neocles Leontis, Fabrice Jossinet, Francois Major, and Eric Westhof who provided helpful advice on various occasions.

Special thanks go to the group of Russ Altman, who provided us with their modeling example to test ModeRNA.

8. References

Components of ModeRNA are based upon the following pieces of scientific literature:

[1] Czerwoniec A, Dunin-Horkawicz S, Purta E, Kaminska KH, Kasprzak JM, Bujnicki JM, Grosjean H, Rother K. MODOMICS: a database of RNA modification pathways. 2008 update. Nucleic Acids Res. 2008 Oct 14.

[2] Yang H, Jossinet F, Leontis N, Chen L, Westbrook J, Berman H, Westhof E. Tools for the automatic identification and classification of RNA base pairs. Nucleic Acids Res. 2003 Jul 1;31(13):3450-60.

[3] Gendron P, Lemieux S, Major F. Quantitative analysis of nucleic acid three-dimensional structures. J Mol Biol. 2001 May 18;308(5):919-36.

[4] Michalsky E, Goede A, Preissner R. Loops In Proteins (LIP)–a comprehensive loop database for homology modelling. Protein Eng. 2003 Dec;16(12):979-85.

[5] Cock PJ, Antao T, Chang JT, Chapman BA, Cox CJ, Dalke A, Friedberg I, Hamelryck T, Kauff F, Wilczynski B, de Hoon MJ. Biopython: freely available Python tools for computational molecular biology and bioinformatics. Bioinformatics. 2009 Jun 1;25(11):1422-3. Epub 2009 Mar 20.

moderna's People

Contributors

krother avatar lenarother avatar cosi1 avatar

Stargazers

JoeG avatar Nicolas Palopoli avatar Zhichao (Chichau) Miao avatar Bernhard Thiel avatar Boris Burkov avatar Gabriel Parent avatar Tanya Malygina avatar Sergio Iván Castro avatar Tomasz Puton avatar  avatar

Watchers

 avatar James Cloos avatar  avatar  avatar Sergio Iván Castro avatar Mateusz Dobrychłop avatar JoeG avatar  avatar

moderna's Issues

Review the modify-and-copy-operations

What should we do about the methods that e.g. add modifications, and optionally copy + renumber residues. If we split the two parts (adding / copying) into two separate operations, the code would get a lot easier to maintain. Opinions?

Is the B-factor feature used?

ModeRNA annotates modified, removed etc residues in the B-factor column. This feature is essentially untested and undocumented. If it is not used, I suggest removing it.

(if it turns out later that something similar is needed, it might be easier to make a separate module that annotates the finished model based on the alignment).

Move standalone scripts to tools/

Create a toplevel directory for tools, like the fragmentDB checker or the scripts generating nucleotides in data/. Also the minimize script could go there.

Refactor ModeRNA alignment

The class ModeRNAAlignment does not need to decorate alignment. In my opinion it does not really belong to sequence/ (branch sequence), rather to the automatic T+A=M process. Tests for the class should be divided among itself and RNAAlignment, and a better name + location found.

include LIR fragments

Find a way to include LIR _fragment.lib and rnaDB05 without adding it to the repo.

Slow and fast tests.

Facilitate development by having a suite of fast passing tests. Switch to pytest.

Moderna_server encountered a problem -> moderna/PdbConverter.py

Problem occured in 144077733467_frag

The problem is:
Traceback (most recent call last):
File "/home/webadmin/django_dbs/moderna_server/moderna_launcher.py", line 549, in main_production
launch.run_moderna()
File "/home/webadmin/django_dbs/moderna_server/moderna_launcher.py", line 247, in run_moderna
self.convert_format()
File "/home/webadmin/django_dbs/moderna_server/moderna_launcher.py", line 542, in convert_format
conv.convert_structure()
File "/usr/local/lib/python2.6/dist-packages/moderna/PdbConverter.py", line 250, in convert_structure
converted_resi = self.convert_resi_list(resi_list)
File "/usr/local/lib/python2.6/dist-packages/moderna/PdbConverter.py", line 204, in convert_resi_list
new_resi_list.append(self.convert_resi(resi))
File "/usr/local/lib/python2.6/dist-packages/moderna/PdbConverter.py", line 192, in convert_resi
atom_list = self.get_new_at_list(resi)
File "/usr/local/lib/python2.6/dist-packages/moderna/PdbConverter.py", line 181, in get_new_at_list
else: new_at_list.append(self.change_at_name(at, at.id))
File "/usr/local/lib/python2.6/dist-packages/moderna/PdbConverter.py, line 77, in change_at_name
element = new_name.strip()[0]
IndexError: string index out of range

python viertual env don't copy the Data folder

When I installed Moderna using pip in a python virtualenv, and I tried to import the package, I got a 'File not found' error. The problem was that the Data folder was not copied to the site-packages/moderna. The solution was easy: copy/past manually the Data folder to site-packages/moderna. But anyway, it was an error that should not have happend.

fix documentation in toplevel functions

I think the docstrings are messed up in a way Sphinx can't follow. Try:

One problem (easily solved) is that wrapping price_with_tax with currency changes its .name and .doc to that of currency, which is certainly not what we want. The functools modules contains a useful tool, wraps, which will restore these values to what we would expect them to be. It is used like so:

from functools import wraps

def currency(f):
@wraps(f)
def wrapper(_args, *_kwargs):
return '$' + str(f(_args, *_kwargs))

return wrapper

Ask users about renumbering feature.

Talk with Asia Kasprzak and Mateusz Dobrychlop:

  1. Do they use the manual modeling mode?
  2. Did they encounter any problems with renumbering so far?
  3. Do they have any opinion on letters (as residue numbers) in the model?
  4. Would it be OK for them if the numbering in the model changes after each insertion (the numbers move) while modeling manualy?
  5. How they would expect program to behave in terms of numbering in the model.

add documentation

Make sure documentation compiles with Sphinx. Requires finding out in which repository the current documentation from genesilico/moderna is.

Fragmet library can be used.

Now ModernaFragment.lib and folder with pdb files are locally in the repository.
Reason: files are big. ModeRNA gets big.
Effects:

  • when somebody clone the repo ---> tests won't pass
  • when somebody downloads release ---> cannot insert fragments automatically, automatic modelling of alignment with gaps will result in incomplete model.

Proposed solutions:

  • make separate pip package FragmentLibrary.
  • include library in ModeRNA repo (this one).
  • store the files online.

Do you have any other solutions or favourite one from the above?

format readme

Format README.rst file so the automatically created documentation looks nicer - e.g. authors line.

Moderna server encountered a problem -> Bio/PDB/PDBParser.py

Problem occured in 144099280745_abc

The problem is:
Traceback (most recent call last):
File "/home/webadmin/django_dbs/moderna_server/moderna_launcher.py", line 549, in main_production
launch.run_moderna()
File "/home/webadmin/django_dbs/moderna_server/moderna_launcher.py", line 247, in run_moderna
self.convert_format()
File "/home/webadmin/django_dbs/moderna_server/moderna_launcher.py", line 540, in convert_format
st = PDBParser().get_structure('', self.template)
File "/usr/local/lib/python2.6/dist-packages/Bio/PDB/PDBParser.py", line 79, in get_structure
self._parse(file.readlines())
File "/usr/local/lib/python2.6/dist-packages/Bio/PDB/PDBParser.py", line 106, in _parse
self.trailer=self._parse_coordinates(coords_trailer)
File "/usr/local/lib/python2.6/dist-packages/Bio/PDB/PDBParser.py", line 164, in _parse_coordinates
resseq=int(line[22:26].split()[0]) # sequence identifier
ValueError: invalid literal for int() with base 10: 'A'

Improve command-line interface

Create a main, check whether the options are parsed in a good way, add color to command-line output. Try other stuff from EuroPython2014 talk "building awesome command-line applications".

setup.py test works.

Currently all tests in test_ModeRNA_all.py pass but there are fails in setup.py test. Perhaps path problem.

Decide package structure with core developers

I think the package structure could be improved. The branches sequence, fragment_library, and isosteric point in a direction we could go further. Before taking any serious action, I'd like to talk to MR and PP at least. TP's opinion would be valuable as well.

Remove duplicate setup scripts

Check that the main setup.py is working in all ways needed and then delete the rest, in particular moderna/moderna/setup.py

Drop support for Biopython < 1.53

We don't need to support Biopython older than 3 years. Allows us to simplify code in moderna/CheckPDB, PdbConverter, RNAResidue and Constants. Documentation (Installation, requirements.txt) needs to be updated.

Installation

There are problems with installation of most recent distribution on Win7 and Mac. Paths problems?

add moderna code

Add moderna code to the repository. Ensure that one can fork the repository and tests pass.

Make import moderna easier

sometimes from moderna import *, sometimes from moderna.moderna import *
Unify this, make it easier for user. Now there is a need to modify pythonpah.

Fix bugs in fixfrag branch

Nobody really knows what is going on at the moment. We know tests are broken. Lets find out what the problem is. Then fix it until tests pass.

moderna modularisation

Modularisation of moderna: divide moderna into separate packages. Each package should have separate interface.

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.