The Genomic Epidemiology Entity Mart (GEEM) is a portal for examining and downloading ontology-driven specifications for standardized data components. The portal aims to provide term reviewers and software developers with ways to utilize application ontology contents (a collection of terms and relations from other ontologies that combine to model the operation of some domain) without the need to be trained in ontology curation or querying. Ontology- driven standards benefit from features of open-source published OWL 2.0 ontologies such as globally unique identifiers for terms, multilingual label and definition functionality, and logical validation and reasoning over controlled vocabularies. Such a specification can be designed to satisfy the requirements of an environmental pH measurement, or a person's age, or a more structured entity like a contact address, or a genomic sequence repository submission for example.
- View details of our overal project aim, description, and implementation on the Wiki site.
- A working prototype of the portal is available at https://watson.bccdc.med.ubc.ca/geem/portal.html. It includes OAuth2 login, and the ability of users to view and customize a variety of draft specifications we have created for the genomic epidemiology space. (An older partially-functioning version which doesn't incorporate the Django framework is at http://genepio.org/geem.)
Clone this repository.
$ git clone https://github.com/GenEpiO/geem.git
To run a local server, create the file .envs/.local/.auth
. To run a
production server, create the file .envs/.production/.auth
. Neither of these
files are tracked by Github.
Templates of both files are found at .envs/.local/.auth.template
and
.envs/.production/.auth.template
.
Register an Oauth2 application on Github. If you are running a local
server, enter http://localhost:8000/index.html
as Homepage URL, and
http://localhost:8000/complete/github/
as Authorization callback URL. If
you are running a production server, enter
http://localhost:8888/geem/index.html
as Homepage URL, and
http://localhost:8888/geem/complete/github/
as Authorization callback URL.
Once the application is created, enter the Client ID and Client Secret into
your .auth
file as SOCIAL_AUTH_GITHUB_KEY
and SOCIAL_AUTH_GITHUB_SECRET
respectively.
Register an Oauth2 application on the Google Developers Console. Select
Web Application as the Application type. If you are running a local server,
enter http://localhost:8000/complete/google-oauth2/
as a value for Authorized
redirect URIs. If you are running a production server, enter
http://localhost:8888/geem/complete/google-oauth2/
.
Once the application is created, enter the Client ID and Client Secret into
your .auth
file as SOCIAL_AUTH_GOOGLE_OAUTH2_KEY
and
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET
respectively.
Build the local docker image. (This may generate an error on more recent Docker installs, in which case try --build instead).
$ docker-compose --file local.yml build
Set up the database.
$ docker-compose --file local.yml run web python manage.py makemigrations
$ docker-compose --file local.yml run web python manage.py migrate
Load initial data.
$ docker-compose --file local.yml run web python manage.py \
loaddata sys_admin new_package_template damion_packages
Run the local server.
$ docker-compose --file local.yml up
View at http://localhost:8000/portal.html.
Create the files .envs/.production/.web
and .envs/.production/.db
, using
.envs/.production/.web.template
and .envs/.production.db
as reference.
We recommend using unique and random keys for the DJANGO_SECRET_KEY
,
DJANGO_ADMIN_URL
, POSTGRES_USER
and POSTGRES_PASSWORD
values.
Build the production docker image.
$ docker-compose --file production.yml --build
Set up the database.
$ docker-compose --file production.yml run web python manage.py makemigrations
$ docker-compose --file production.yml run web python manage.py migrate
Load initial data.
$ docker-compose --file production.yml run web python manage.py \
loaddata sys_admin new_package_template damion_packages
Run the production server.
$ docker-compose --file production.yml up
View at http://localhost:8888/geem/portal.html.
If you do not want to run a production server on localhost
, specify
your host under DJANGO_ALLOWED_HOST
at .envs/.production/.web
, and
server_name
at compose/production/nginx/nginx.conf
.