Wiki
Clone wikiSOApp / Developer Manual
SnowyOwl Application Root Directory
SnowyOwl web application files are hosted on /export/geno_new NetApp volume under the SOApp directory.
Directory Layout
Directory | Notes |
/export/geno_new/SOApp/prod | SnowyOwl web application code (includes user uploads and project data) |
/export/geno_new/SOApp/SnowyOwl | SnowyOwl gene prediction pipeline code (https://bitbucket.org/snowyowl/snowyowl) |
/export/geno_new/SOApp/tuque | Tuque read mapping software from Concordia (see Tuque) |
/export/geno_new/SOApp/soapp.git | Git (mirror) repository (a complete and independent copy of this repository) |
/export/geno_new/SOApp/wiki | A backup of this wiki |
/export/geno_new/SOApp/augustus.2.5.5 | A dedicated copy of Augustus |
/export/geno_new/SOApp/util | Some external programs required by the application |
/export/geno_new/SOApp/sample | A small dataset intended for testing |
Note Please see Application Layout for detailed web app (SOApp/prod) file system layout
Updating Local Repos
The local repositories (SOApp/so.app, SOApp/SnowyOwl, SOApp/wiki) can be kept in sync with the online repositories by running the following commands:
$ cd SOApp/SnowyOwl
$ git pull
$ cd SOApp/wiki
$ git pull
$ cd SOApp/so.app
$ git fetch # can't pull no working tree
Rolling Out Updates
It is recommended that the developer implements and test new code on a separate development environment and commit the code to the online code repositories and the sync the local data. Alternatively the developer may want to commit directly to the local repositories.
To update the local SnowyOwl (production) code under SOApp/SnowyOwl, simply pull from the remote repository as shown above. In the case of SOApp/prod, run the following commands:
$ cd SOApp/so.app
$ git fetch
$ cd SOApp/bin/admin
$ ./repo_to_prod.sh
The developer may want to edit files directly on the development server or use an IDLE (with git and sftp support) to edit and upload files seemlessly from their desktop machine. Some recommended IDLEs are NetBeans (PHP) and PyCharm (Python, cheap academic licence). It is not recommended to directly edit code on the production server, unless you know what you are doing. It is more reliable to deploy updates from the repository. The repositories serve as historical record as well.
Backend Daemon
The backend daemon (written in Python) processes jobs submitted through the web interface and stored in the database and SOApp/data filesystem.
The soctl.py script (under SOApp/bin) can be used to start and stop the backend service. The user mush belong to the snowyowl user group.
$ soctl.py start
You do not have permission to run SnowyOwl.
$ newgrp snowyowl
$ soctl.py
usage: soctl.py [-h] {start,stop}
soctl.py: error: too few arguments
$ soctl.py start
$ soctl.py stop
Daemon Log File
The deamon log file (soctl_log) is saved under SOApp/prod/log.
$ cd SOApp/prod/log
$ soctly.py start && tailf soctl_log
Database
The structure of the PostgreSQL database (tables and functions) can be found in /sql/schema.sql. Also, user permissions and table data can be found under /sql/init.sql.
Two unprivileged data users (one for the web interface and one for the daemon) should be created. These users should not be owners of the database, for security reasons. Database connection parameters can be set in /config.ini (see Sample Configuration)
Updated