Commit fce01755 authored by Kenzo-Hugo Hillion's avatar Kenzo-Hugo Hillion
Browse files

empty README and move to wiki pages

parent bd2b1c01
Pipeline #33133 passed with stages
in 3 minutes and 14 seconds
......@@ -3,135 +3,15 @@
[![pipeline status](](
[![coverage report](](
## The project
The main motivation behind MetageneDB is to provide a support for all the analysis that are based on gene catalogs.
It is composed of both an API and a client side for visualization and interaction with the DB.
## Setup the services on your local machine
### Dependencies
The application depends on different services that run independently on docker images and all of this is
orchestrated by `docker-compose` locally.
Therefore to run the application you need:
* `Docker` : [Install instructions](
* `Docker Compose` : [Install instructions](
### Configuration
For `docker-compose`, you need to create a `.env` file: `touch .env`. An example is available: `.env.sample`.
The settings of the Django server is based on the `backend/.env` file. You can copy the sample file
(`cp backend/.env.sample backend/.env`) and fill in the variables.
You can of course customize more of the Django server settings in the `settings` module of metagenedb.
Now we will go through the different parts.
#### Secret key
This is the Django `SECRET_KEY` and you need to specify your own. For instance you can use the command
`openssl rand -base64 32` to generate one by command line.
#### Create your own DB on postgresql
The following variables have the default values:
It will work if you leave it as it is but you might face security issues having a by default database
without credentials.
What we recommand is to create your own database. Here is described one way to do it. To do that you need to
first run the db image and identify its running ID:
khillion:~/metagenedb $ docker-compose up postgresql -d # This runs only the postgresql service of your docker-compose in detached mode. You can also detached from you running screen using Ctrl+Z
Creating postgresql ... done
khillion:~/metagenedb $ docker ps # List your running docker images
5002f210f9d8 postgres:11.4-alpine "docker-entrypoint.s…" 1 minute ago Up 1 minute>5432/tcp postgresql
Now that you have the `CONTAINER ID`, here `5002f210f9d8` you can run a `bash` terminal in this container and
create your own database:
khillion:~/metagenedb $ docker exec -it 5002f210f9d8 bash
bash-5.0# psql --user=postgres
This will open the `SQL` console where you can do what you need:
CREATE ROLE metagenedb WITH PASSWORD 'yourawesomepassword';
CREATE DATABASE metagenedb WITH OWNER metagenedb;
Now you have you own database, protected by a password and you need to update your `.env`:
> **Note**: The by default port for postgres is `5432`. In the `docker-compose.yaml` you will notice that this
port is redirected to `5433` on the `localhost`. This is done in order to not interfere with your local
postgres if you have one. This means you need to change `DATABASE_HOST` to `localhost` and `DATABASE_POS
### Pre-computed statistics
Some statistics about genes are pre-computed and can be accessed through the `/api/catalog/v1/statistics` endpoint.
The ID is constructed with the following format: `<statisctics-type>-<gene_source>-<method>-<options>`.
## Run the application
For the moment, only the `` is used. To run the application simply run the command:
docker-compose up --build
The `--build` option is only necessary during the first usage or when you make changes that need the docker
container to be built again.
Since directories with source codes are mounted in the containers, changes you make locally should be
directly reflected on the application.
### Populate the database
You have a set of scripts available that you can list via ` --help`.
## Dev tips
#### Profiling code
from metagenedb.common.utils.profiling import profile
* Graphical interface to browse through the catalog
* REST API to programmatically query and retrieve information from the database
* (not implemented) Interface to perform analysis from gene counts present on the catalog
def my_function(a, b, c):
## Wiki & Documentation
snakeviz /my/file/path
For more information, please have a look at our [Wiki](
......@@ -6,3 +6,4 @@ DATABASE_NAME=postgres
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment