This page should help familiarize you with GraphSpace's interface and basic features.

What is a graph?

A graph is a mathematical object containing vertices (also known as nodes or points) and edges which connect the vertices.
Graphs may be used to represent many different types of models. An example of some of them are computer networks and biological pathways. A graph may contain vertices(nodes) and lines(edges). In GraphSpace, we utilize these two objects to layout biological networks. In these networks, nodes may be thought of as proteins, and edges may be thought of as interactions between these two proteins. Thus, if two nodes in the graph have an edge that is connected between them, this indicates that two proteins in the network interact. Although we have so far described that graphs on GraphSpace can represent biological networks, GraphSpace provides users the flexibility to create graphs regardless of what they represent. Anonymous users may only see public graphs. This section contains all graphs that anyone that visits GraphSpace can see. Any person on GraphSpace may upload a graph. Anonymous users may only upload public graphs. If a person is a registered user of GraphSpace, they may upload via the REST API or web interface. Registered users of GraphSpace may specify whether they want their graphs to be private or public via REST API.

When a user is logged into GraphSpace, they may navigate to the "Graphs" section in order to see all the graphs that they have permissions to see. The "Graphs" section has three options, My Graphs (all graphs that the user uploaded), Shared Graphs (graphs that are shared with groups that the user is member of), and Public Graphs (graphs that everyone can view).

Viewing a Graph

Below is a public graph that can be found here.

Positions of all the nodes in a graph are mutable. One can click and drag on nodes to change their positions.

Embedded Information

Elements inside of a graph may have information embedded in them. Clicking on the element will reveal information it contains(such as description). The image below shows the information that is contained inside a the node CCT6.

The information embedded inside elements may contain external links to sources as well.

Graph Panels

When viewing a grpah, you'll notice that there are panels to the right of a graph. Some of these panels are hidden. Clicking on an individual panel will reveal information the panels contain.

Graph Details Panel: Area where legend image for a graph and/or description of the graph

Searching Panel: "Search" allows one to distinguish an element of a graph. If a user wants to distinguish a node, simply enter the text that is displayed on top of the node. If a user wants to distinguish an edge, enter a query in the following format: [tail: head], where the tail is a node that an edge is pointing from, and the head is a node which the arrow is pointing towards. For example, if a user searched for the node 'TEM1', then the node will look like this:

TEM1 before searching

TEM1 after searching

If a user wants to search for edge connection from TEF4 to TEM1, they can do so with the following search command: TEF4:TEM1. The edge will look like this:

Before searching for edge

After searching for edge

GraphSpace allows users to send links which contain elements of a graph to be distinguished. If a user searches for an element and the element is found inside the graph, a link is generated on top of the search bar. This link provides a reference to this graph along with all of the elements to be distinguished. If a GraphSpace user sends this link to someone else, they can follow the link to see the exact graph you are viewing, including all the elements that you have distinguished.

The Partial option under the search bar allows one to search for all elements within a graph which may have the search term as part of its value. For example, if there are two nodes CDC5 and CDC55 and the user does a partial search with the term 'CDC', then both CDC5 and CDC55 will be distinguished.

The Exact option under the search bar allows one to search for all elements within a graph that are identical to the search term. If there are two terms CDC5 and CDC55 and the user does an exact search with the term 'CDC5', only CDC5 will be distinguished. Note: If the user had searched for the term 'CDC', nothing would have been distinguished since there are no nodes in our example graph which have CDC as their entire value.

Export Panel: Allows one to export the entire image of the as a PNG

Owner Panel: shows the GraphSpace user whom the graph belongs to

Sharing Panel: Displays all the groups that a graph is shared with [See groups below]

Layouts Panel: Provides multiple methods to display or layout a graph. Note: a user must have an account with GraphSpace in order to save and share layouts they create.[See Layout section]

Auto Layouts

Manual Layouts

The 'Auto' option provides methods to automatically layout a graph using their respective algorithms. If a person has created an account and logged into GraphSpace, they they will be allowed to save any changes to the positions of elements in the graph that they manually make. In addition, they will also be able to view layouts and share layouts with groups that they are a member of. [See groups below]

Step through filtering Panel: There are graphs in GraphSpace which employ the use of Step through filtering. This concept allows one to see subgraphs of the entire graph. In addition, it allows a user to "step" through the connections of a graph in sequential order. The images below show a user stepping through a graph.

Max highly probable paths tells GraphSpace to display a subgraph up to the specified value.

Number of highly probably paths reveals interactions (connections) that occur at a certain value. For example, when Number of highly probable paths was 10, a read node was revealed. When this value was 8, the red node was not present.

Finding graphs

Notice the bar at the top of the screen. On the left hand side, right next to the big "GraphSpace" logo, are links to your graphs and groups.
On your graphs page, you will see buttons at the top of the page called "My Graphs", "Shared with me" and "Public graphs".
  • My Graphs will show graphs that you own (you have uploaded). (GraphSpace account required)
  • Shared with me will show graphs that have been shared with you through groups [See groups below]. (GraphSpace account required)
  • Public Graphs will show graphs that have been made publicly available on GraphSpace.

Uploading graphs

GraphSpace represents graphs using a JSON format. To see an example of how to upload a correctly formatted JSON graph to GraphSpace, please see this page.


A layout is a specific representation of the network. In terms of GraphSpace, a layout is the specific arrangement of nodes and edges for that graph. GraphSpace provides a list of pre-defined algorithms to quickly layout any graph. In addition, a user can also manually go in and arrange nodes and edges as they see fit and then save the layout for future reference.

While on the graphs page, there are two boxes: Search and Tags [See Tags section]. The Search panel allows for any user of GraphSpace to search a graph that matches the criteria of ALL search queries. A user may search for graphs using its name as well as a node or an edge which a graph may contain.

To search for graphs that match a name, simply type the name or a part of the name of the graph

To search for nodes, type the name of the node (text that you want to see inside the node)

To search for edges, search using the following syntax [tail: head] where tail is the name of the node where the arrow is coming from and head is the name of the node that the arrow is point to. For example, to search for the edge that connects YEF3 to SIR2, type YEF3:SIR2. All graphs that contain this edge will be presented to the user.

If searching for multiple values, separate all individual search terms with commas. Ex: AKT1, AKT3, JUN

The Partial option under the search bar allows one to search for all graphs that may contain that word in the graph itself. This option will return all the graphs that may have a node which contains parts of the values you are searching for, graphs that may contain part of the searched term in its title, as well as if there are edges which contain part of the searched values as well.

The Exact option under the search bar allows one to search for all graphs that have exactly what is being searched for. Graphs returned from this option may have a node, graph title, or an edge which is identical to the searched terms.

Note:If there are multiple search terms (and/or tag terms), all graphs that are returned WILL match all of these terms. All graphs that are returned by the searches of a node and/or an edge will have all searched terms distinguished inside the graph.


Note: GraphSpace account required for this feature

Groups contain collections of graphs that are shared by members of the group.

A group owner is the creator of the group. They may
  • Invite any GraphSpace user that has an account to be a member of their group
  • Remove any member from their group
  • Unshare any graph that has already been shared by the members of their group
A group memberis a user that is a part of a group that is owned by someone else. They may
  • Share their graphs with a group
  • Unshare the graphs that they own from the group
Both groups owners and group members may share layouts with the group of any graph that is shared with the group.

Grouping graphs

You can also look at groups, which are collections of graphs shared by members of the group. Click on groups in the navigation bar. You should see the following categories for groups
  • Owner of are groups that you have created and are the owner of. You can set the description of groups that you own as well as add or remove members. All other functionality is accomplished through the REST API
  • Members of are groups that you have been added to. You can view or add graphs to these groups through the REST API

Sharing graphs

To share one of your graphs, refer to the REST API.
In order to share a graph, you must own the graph. In addition, you must be a member or the owner of the group you want to share the graph with. Sharing a graph allows all the members in the group to see the graph. Un-sharing a graph means that no one in the group is allowed to see that graph anymore. Only the graph owner is allowed to see the graph.

Sharing layouts

Similar to a graph, a layout may also be shared with a group. In order for a layout to be shared with a group, the graph (and implicitly the graph owner) must already be shared with a group. It would make no sense to share a layout with a group if that graph may not be viewed by any of the group's members.

When you first create a layout, only the creator of the layout is allowed to see it. If the graph is publicly available on GraphSpace, then if the user shares the layout they created, the layout will also be made publicly available. If the graph is privately shared, then if the user decides to share a layout they created, every group that has both the creator of the layout as well as the graph which the layout references will have access to that layout.


Tags are used to categorize graphs. For example, if a user is uploading multiple graphs to GraphSpace for a specific paper, a tag would be used to categorize all the graphs related to the paper. On the graphs page, a user can search for graphs that match a tag. A graph may have any amount of tags that the user sees fit. It is advantageous for users to group all graphs they upload using tags as it allows for clear organization of work on GraphSpace.

Currently, one has to know the exact tag to search for in order to retrieve all graphs that a user has permission to see which match the searched tag. If you are searching for multiple tags, separate each individual tag value with commas. Ex: help, tutorial, guide


GraphSpace is developed by the Murali lab at Virginia Tech.


It is built using the following technologies: