This is the supporting code for the demo version of the DataDiVR, a virtual reality-based network visualization application, maintained by Sebastian Pirch, Felix Müller, Jen Iofinova, and others at the Jörg Menche Lab at the Center for Molecular Medicine of the Austrian Academy of Sciences, based in Vienna, Austria.
The visualization software itself can be downloaded using the script download_software.py. Note that for now this is not publicly available and the download is password-protected. Please contact us or file a support request in this github project if you would like to partner with us to apply the DataDiVR to your project.
The DataDiVR comes pre-loaded with several networks already included, and so is ready to use as soon as it is installed. Additionally, it is easy to load your own networks into the DataDiVR.
Note: this repository provides tools to assist in creating files for consumption by the DataDiVR. The use of these tools to produce and/or validate inputs is strongly recommended, as no errors or warnings will be raised by the DataDiVR itself.
Each 3-dimensional "scene" viewable in the DataDiVR consists of a set of nodes. The full list of nodes, along with their names, any additional annotations, colors and (fixed) positions, is called a layout. Optionally, these nodes may be connected by undirected links. In addition, labels, which are text annotations not connected to any specific nodes, may be added to annotate groups of nodes. Finally, sets of particularly interesting nodes may be saved as a selection.
Each of these objects - layouts, links, labels, and selections - are written as .csv files. These files can be found in the directories below relative to the home directory of the DataDiVR:
Any .csv files found in those directories (but not in any subfolders) will be read by the DataDiVR, and will be discoverable from inside the VR. The naming conventions enforced by the software are as follows:
You can check your file structure by running the validate_file_structure.py script.
The layout files must be in csv format, with no header. The separator must be a comma, and no escaping separators is allowed. The columns are as follows:
You can check your layouts by running the validate_layouts.py script.
The links files are likewise in .csv format with no header the following format:
Note that there is no need to list the edge twice - the edge (N1, N2) is equivalent to the edge (N2, N1).
You can check your layouts by running the validate_links.py script.
The labels .csv file should have the following columns:
You can check your labels by running the validate_labels.py script.
A selection file is simply a list of nodes, one node per line. As with links, the node IDs are the 0-indexed line numbers on which the node appears.
Example notebooks are provided to demonstrate the creation of DataDiVR inputs from other formats, for example from a NetworkX graph.