The following summarizes the steps required for a developer to turn an existing Rosetta application into a ROSIE server. It is a snapshot of the protocol at the time of writing. A continuously updated version of this protocol is being made available at http://goo.gl/Sh7oB. Importantly, the protocol has been written by new ROSIE developers and so captures the perspective required to promote faster first development cycles for other new engineers. ROSIE development tools and source code are available to registered developers through RosettaCommons.
Download the VM (http://graylab.jhu.edu/ROSIE) and open it with VirtualBox (http://www.virtualbox.org). Before you start, you may want to do a ‘svn update’ in ‘∼/rosie’ and ‘∼/R/trunk/rosetta’, and rebuild the Rosetta trunk, since they may be out of date.
1 Modify the file ‘rosie/rosie.front/development.ini’. Find the line ‘host = 192.168.0.64’ and comment it out. Enable the line ‘host = 127.0.0.1’.
2 To run the server: Open two terminals. In one of them, cd into ‘rosie/rosie.back’ and execute ‘./run_rosie-daemon.sh’. In the other terminal, cd into ‘rosie/rosie.front’ and execute ‘./run-rosie-server.sh’.
3 Open ‘localhost:8080’ in your browser. Login as admin (password: managepass).
1 Create your application in rosie.back/protocols/XXX. You need at least two files: submit.py and analyze.py. See “rna_denovo” for example files.
2 For machine-dependent files, edit rosie.back/data.template/XXX. Edit rosie.back/rosie-daemon.ini.template, add useful shorthands and add the app into the protocol line. Copy the corresponding files to rosie.back/data/XXX and rosie.back/rosie-daemon.ini so the VM server can read the files.
3 Add the corresponding controller in rosie.front/rosie/controllers/XXX.py. See rna_denovo.py as an example.
4 Add your controller into controllers/root.py. In root.py, search for ‘rna_denovo’. Add the two corresponding lines for your application.
5 During the creation of the controller files, you may want to make some validation checks for the input format. They are in rosie.front/rosie/lib/validators. You might need to create your own validation tests.
6 Create your page in rosie.front/rosie/templates/XXX/. You need at least 3 pages: index.html, submit.html, and viewjob.html. See rna_denovo for example.
7 Link your application to the main page in template/index.html.
8 You may want an icon. Put a png file of ∼ 1024*1024 into rosie/public/image/XXX_icon.png, and link it to the pages.
9 For documentation, create pages in template/documentations. Also you need to edit controllers/documentation.py to let the server know where it is. Then link your documentation to documentation/index.html and in the other pages of your application.
10 Edit rosie.front/rosie/websetup/bootstrap.py and add the name of the new app.
11 Go to rosie.front/. Run ‘source ∼/prefix/TurboGears-2.2/bin/activate’ then ‘python update_protocol_schema.py’ to update the database.
12 Test the new application in the browser of the VM to make sure it runs fine.
13 Create a new file rosie/doc/XXX.txt, put a short description of protocol input, output, and command line flags. Also add an example job, with input files and a simple readme, into rosie/examples/validation_tests.
14 Commit the changes (use ‘svn commit –username XXXX’ to specify the user name of the commit). Inform the ROSIE administrators for integration into the central server.
Lyskov S., Chou F.C., Conchúir S.Ó., Der B.S., Drew K., Kuroda D., Xu J., Weitzner B.D., Renfrew P.D., Sripakdeevong P., Borgo B., Havranek J.J., Kuhlman B., Kortemme T., Bonneau R., Gray J.J, & Das R. (2013). Serverification of Molecular Modeling Applications: The Rosetta Online Server That Includes Everyone (ROSIE). PLoS ONE, 8(5), e63906.