Skip to content
Peter C edited this page Mar 31, 2022 · 3 revisions

RNA Nanostructures

Vision

This project is for RNA-Nanostructures researchers who work with the RNAMake application which provides solutions to a host of RNA 3D nanostructure challenges, the RNA-Nanostructures Science Gateway is a web-interface that provides a user-friendly experience with the RNAMake application and enables job scheduling on the Open Science Grid or Holland Computing Center. Furthermore, the RNA-Nanostructures science gateway, enables visualization of results through an easy-to-use web interface.

Overview

RNAMake is a command-line only software suite for the design and analysis of RNA 3Dstructures. RNAMake codifies and automates decades of learned rules of 3D design, removing the requirement for painstaking manual modeling and time-consuming selection experiments that previously hampered the generation of RNA-Nanostructures. Because of its command-line only nature, it becomes difficult for other's to download the application, build it, and set it up to become usable for their needs. This project aims to remove those steps and instead get researchers modeling their RNA 3Dstructures directly from a web application without the need to understand how to set up and run the underlying program. The simulations will be done on compute resources like the Open Science Grid, which will allow for many jobs to run quickly and simultaneously. Researchers will also be given the ability to visualize the results directly from the web interface, greatly expediting the workflow.

Documentation and Artifacts

Our project is currently setup with a docs folder where we keep relevant documentation and artifacts about the project such as the wagtail documentation. Documents will be added to that folder as the project progresses.

Releases

All releases are tagged and described under /releases

Frameworks

The project is being implemented with Airavata as the back-end and and a Django implementation for the front-end.

Airavata

  • The framework is functional but needs to be extended to support job submission the Open Science Grid (OSG).
    • To support job submission on the OSG, HTCondor job workflow and submission has to be supported as a job submission method in Airavata.

Django

  • The Airavata Django Portal was implemented by the Airavata developers and supports User login, application creation, and job submission using the Airavata API and system.
    • The Airavata Django Portal will be modified to incorporate the landing page design and the RNA Make application design.

Cookiecutter

  • Cookiecutter is a python script that creates Python packages from a template.

React.js

  • React.js is used to present the data gathered from the Django Portal from the Airavata backend, and is bundled into a plugin by the cookiecutter python program.

Django Components

Output View Provider

The Output View Provider is a component that enables visualization or interaction with the output of a job executed in the Airavata-Django Portal. This project requires implementation of a 3D molecule visualization, a table visualization, and a file download capabilities. For additional information about creating and adding output view providers that can be found here.

  • Molecule Viewer
    • The Molecule Viewer is a Vue.js component implemented to enable interaction with the PDB files produced by RNAMake after job execution. The viewer provides a drop down to enable PDB file selection by the user. The Molecule viewer implements GLMol to support the interactive viewer.
  • Table Viewer
    • The Table viewer is a Vue.js component implemented to visualize the content of a CSV file produced by RNAMake in tabular format. The Table viewer implements vue-good-table to support table generation and styling. Dynamic data display is implemented into the viewer. Specifically, a drop-down menu is implemented with column visibility selection options.
  • File Download
    • The File Download viewer provides Users a method to download the PDB files generated by RNAMake.

Continuous Integration

The project uses TravisCI to perform continuous integration, allowing us to build the project on every commit and pull request. This allows us to test our code and make sure all tests are performed on any newly changed code.

Testing

The project uses distinct testing strategies for the different frameworks.

Airavata

  • The Airavata server API system makes use of unit tests in a number of portions of the code which are run during Maven builds as well as run using Travis CI on the apache/airavata repository; however, testing the full stack of services to confirm usability of the workflow manager and job submission system does not employ any mock or unit testing. This is as set up by Apache/Airavata and consequently the testing strategy cannot be modified by the team.
  • The Airavata-HTCondor Extension is manually tested using the following components:
    • Docker to spin up the required backend services such as the databases and credential broker. NOTE: the database, docker id: container_db_1, can be exported through an mysql dump.
    • The Airavata API, job manager, and job monitor--started in the IDE.
    • A virtual machine running Ubuntu with HTCondor and an SMTP server are installed.
      • The above tools are used to run a testing pool and to send job notifications to our test email that the job monitor polls.
    • The PGA portal after spinning it up using Docker as per the testing instructions.
      • The steps to configure the PGA Portal on a Linux environment can be found here.
      • While in the default Super Admin mode of the PGA Portal, the virtual machine compute resource is registered.
      • After disabling the Super Admin mode in the PGA Portal, the virtual machine compute resource is set up with the default gateway and set to default.
    • The Django Portal with the following configurations:
      • The settings are configured to all point to the local Docker services and local running Airavata API service.
      • The compute resource is registered in the settings portion of the Django portal.
      • An application is set up to run on the compute resource.
    • An application is then tested using the virtual compute resource. If the application is able to complete successfully and the output on the IDE console running the Airavata services does not indicate any failures, we consider it in the working state. Otherwise, we edit code/settings/configurations to fix the issues we ran into.

Django

  • The Airavata Django Portal makes use of unit testing via Django framework, testing sub-components according to the unit tests employed. It also performs Python style and syntax validation through flake8. This is tested using Travis CI which runs the Django tests and yarn tests for the server.
  • Travis CI performs continuous integration on every commit and pull request, making sure code can be merged.
  • The PDB parser is tested using the same Django test suite, which allows it to be tested using the same testing system.