-
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.
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