# Technical documentation:
Overview and introduction

This page provides an introduction to the technical aspects of ELLA.

Detailed descriptions of various technical aspects of ELLA are found in these separate sections:

  • Setup: How to deploy and setup a demo, production and/or development environment.
  • Configuration: How to configure ELLA for your needs.
  • Production tasks: Common production tasks with the ELLA command line interface (ella-cli).
  • System internals: ELLA's inner workings.

# About ELLA

ELLA is a tool for clinical interpretation of genetic variants, where the user either interprets a single variant, or several variants belonging together in an analysis. The result of the interpretation work are assessments that include the classification of the variant (1-5, DR, U). The interpretation must be approved by another person in a multi-step workflow.

The assessments are the main product of ELLA. When the same variant(s) is seen in other samples, the previous interpretation can be reused, saving valuable time.

In general, ELLA has an append-only data model, where no data is deleted or overwritten. Instead, an updated copy is made and the versions are linked.

ELLA is built as a web application with a frontend and backend. The frontend runs fully in the user's browser, while the backend runs on a server. The frontend communicates with the backend via a JSON-based REST API.

Figure: High-level system diagram of ELLA.

# Frontend

The frontend is written in javascript, using:

# Backend

The backend is written in Python and built using Flask (opens new window).

# Database

ELLA uses a relational PostgreSQL (opens new window) database with the data model defined using SQLAlchemy (opens new window).

# Command line interface (ella-cli)

Most admin tasks in ELLA are handled using the ELLA command line interface (ella-cli). This is located in bin/ella-cli, but should be available in $PATH if you use a Docker image. For available options, type ella-cli --help.

Last Updated: 8/20/2020, 2:19:27 PM