Skip to content

Structure of the project

Eugenia Oshurko edited this page May 1, 2020 · 11 revisions

The KAMIStudio repository consists of the following directories:

  • kamistudio the main KAMIStudio application package;
  • examples a set of example .JSON files that can be used to import a corpus, interactions and a model;
  • db a set of database resources needed for configuring Neo4j in the KAMIStudio Docker container.

and the following files:

  • setup.py the setup file for python setup.py install;
  • configure.py KAMIStudio configuration script for python configure.py;
  • run.sh bash script for starting the KAMIStudio app (./run.sh);
  • Dockerfile a file containing instructions for assembling a Docker container (see https://docs.docker.com/engine/reference/builder/ for more details on dockerfiles);
  • docker-compose.yml a Docker compose file for assembling a multi-container app (one container for the Neo4j db, one for MongoDB and one for the KAMIStudio app, see https://docs.docker.com/compose/ for more details)

Let's have a closer look at the directories:

Package kamistudio

This package is organized as a 'typical' Flask-app that uses blueprints (see a nice article explaining them). It includes the following blueprint packages (and respectively directories):

  • home blueprint for the home page showing the list of corpora and models, allowing to create and import one;
  • corpus blueprint for the corpus-related functionality: corpus view, addition or import of new interactions, definitions, model instantiation, etc.;
  • model blueprint for the model-related functionality: model view, Kappa generation, etc.;
  • action_graph blueprint for generic (for both corpora and models) action-graph-related functionality;
  • nuggets blueprint for generic (for both corpora and models) nugget-related functionality;
  • definitions blueprint for generic (for both corpora and models) protein-definition-related functionality;

Every blueprint package typically contains the directory templates with the blueprint specific Jinja-templates, the directory static with the static files and the file views.py containing all the routes in the blueprint.

Additionally, the KAMIStudio app contains some generic top-level directories:

  • static containing generic static files (css/js/images);
  • templates containing generic Jinja templates (such as error pages, base.html, etc);
  • instance contains instance-specific configurations (see more details here).

Finally, the top-level

  • config.py default top-level configurations;
  • exceptions.py KAMIStudio custom exceptions;
  • utils.py a set of utilities (like checking db connections, etc.);
  • __init__.py a file containing the application factory (see more details here).

Folder examples

This folder contains the following files:

  • egfr_corpus.json JSON-representation of an example corpus for KAMIStudio import (part of the EGFR signalling pathway);
  • egfr_interactions.json JSON-representation of interactions for batch-import;
  • egfr_model.json an example model for KAMIStudio import (instantiated EGFR corpus).

Folder db

This folder is used for creating a Docker container for KAMIStudio. It contains some resources needed to properly configure the database containers. It serves a double-purpose:

  1. provides necessary resources (i.e. Neo4j plug-ins an configurations),
  2. provides directories where Neo4j and MongoDB will store their data, when container is created.

db/neo4j/plugins db/neo4j/conf

APOC The latest APOC jar can be downloaded here (please, pay attention to the compatibility with the Neo4j version)

Graph Algorithms (is now deprecated, you may consider moving KAMIStudio to Graph Data Science

Clone this wiki locally