Genetta is a tool to represent genetic designs as networks. A network-centric approach provides several advantages, namely representing and analysing complex systems. Furthermore, knowledge graphs have been widely used in biological sciences and are used here as the basis for structuring input data. The addition of semantics allows for more complex control over the underlying data, e.g., the ability to arrange information into several layers of abstraction. Genetta currently aims to visualise genetic data as a network; we expand this to allow network-centric analysis primarily around enhancement and validation. Please get in touch with us if you would like to contribute or if you would like to use the system (or sub-system) within your workflow.
Genetta may be run in three ways depending on available resources.
The local running is when both the Genetta server AND frontend are hosted externally.
The partially hosted running is when the Genetta server is hosted externally and the frontend is ran locally.
- Navigate to your install directory
- Within the file, modify these three settings to the correct values:
- NEO4J_HOST
- NEO4J_PORT
- NEO4J_AUTH
sudo chmod +x frontend.sh
./frontend.sh
- Open a browser and enter: http://127.0.0.1:5000/
- The landing page has information for using the tool.
- Clone repository
$ git clone https://github.com/Biocomputation-CBGP/genetta-frontend
- Navigate to your install directory
python -m pip install -r requirements.txt
NEO4J_HOST=<HOST> NEO4J_PORT=<PORT> NEO4J_AUTH=<Username/Password> FLASK_APP=router.py python3 -m flask run
- Open a browser and enter: http://127.0.0.1:5000/
- The landing page has information for using the tool.
The local running is when both the Genetta server AND frontend are ran locally on the same machine.
- Clone repository
$ git clone https://github.com/Biocomputation-CBGP/genetta-frontend
- Navigate to your install directory
sudo chmod +x local.sh
./local.sh
- Open a browser and enter: http://127.0.0.1:5000/
- The landing page has information for using the tool.
If docker is not available, here is a brief guide to installing neo4j with links to more comprehensive installation guides. Note this guide assumes a Debian based operating system.
$ git clone https://github.com/Biocomputation-CBGP/genetta-frontend
- Install Neo4j (https://neo4j.com/docs/operations-manual/current/installation/)
$ wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -
$ echo 'deb https://debian.neo4j.com stable latest' | sudo tee -a /etc/apt/sources.list.d/neo4j.list
$ sudo apt-get update
$ sudo apt-get install neo4j=1:4.4.6
- Enable APOC (https://neo4j.com/labs/apoc/4.1/installation/)
$ mv NEO4J_HOME/labs/apoc-4.4.0.3-core.jar $NEO4J_HOME/plugins
(usuallymv /var/lib/neo4j/labs/apoc-4.4.0.3-core.jar /var/lib/neo4j/plugins
).$ sudo neo4j restart
- Install GDS (https://neo4j.com/docs/graph-data-science/current/installation/neo4j-server/)
- Download 'neo4j-graph-data-science-[version].jar' from the Neo4j Download Center
- Copy it into the
$NEO4J_HOME/plugins
directory (usually/var/lib/neo4j/plugins
). - Add
dbms.security.procedures.unrestricted=gds.*
anddbms.security.procedures.allowlist=gds.*
to$NEO4J_HOME/conf/neo4j.conf
(usually/var/lib/neo4j/conf/neo4j.conf
). $ sudo neo4j restart
- Install Python requirements.
- Navigate to your install directory
python -m pip install -r requirements.txt
- $ FLASK_APP=router.py python3 -m flask run
- Open a browser and enter: http://127.0.0.1:5000/
- The landing page has information for using the tool.
As discussed, Genetta uses neo4j for graph storage and manipulation. However, to present this, a small flask application using dash-Cytoscape has been implemented and enables the user-generated network visualisations. A graphic of the architecture can be seen below.