-
Notifications
You must be signed in to change notification settings - Fork 1
Structure of the project
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 forpython setup.py install
; -
configure.py
KAMIStudio configuration script forpython 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:
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).
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).
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:
- provides necessary resources (i.e. Neo4j plug-ins an configurations),
- provides directories where Neo4j and MongoDB will store their data, when container is created (Docker container will use the folders
db/noe4j/data
anddb/mongo/data
to store Neo4j and Mongo data respectively).
KAMIStudio is distributed along with the two Neo4j plugins (db/neo4j/plugins
) used for transformation and visualization of graphs underlying knowledge corpora:
-
APOC is needed for ReGraph, the latest APOC jar can be downloaded here (please, pay attention to the compatibility with the Neo4j version);
-
Graph Algorithms is needed to find connected components used by the visualization (is now deprecated, you may consider moving KAMIStudio to Graph Data Science).
The db/neo4j/conf
folder contains the Neo4j configs used in Docker containers.