Welcome to esyN
esyN is designed for ease of use. To dive in and make your first network, follow these simple steps.
Making a Network Graph
- Click to the "Graphs" page in the menu bar
- The light blue area is where you create your network
- Click on the "Node" button in the top right corner
- Click anywhere in the blue workspace to create a node
- Click on the newly created node and change its name to "A" using the panel on the right - remember to click "Set" to apply the change
- You can create as many nodes as you like this way. Repeat the process to create a node named "B"
- Next let's create an edge between nodes A and B. Click on the "Edge" button above the network viewer to enable edge creation, then click once on each of A and B to create the edge. Notice that because we're in Edge mode, the control panel on the right does not allow us to edit the properties of the nodes themselves
- While still in Edge mode, try clicking an empty region of the blue canvas. Nothing happens because you can't create nodes while in Edge mode.
- Let's save our work. First change the default project name in the box below the blue canvas to "My first project". Now click save in the tools menu on the left. As you can see, we have three options. If you're logged in to esyN, select "Save online" to save this project online with your account so you can easily work on it later, from anywhere in the world. Otherwise select "Save offline" to download the project file so that you can upload it later and continue. Don't worry about "Save a copy" for now.
- That's it! Experiment with the basic features and try constructing a simple network from scratch. Then try some of the more advanced tutorials to learn how to get the most out of esyN. We recommend you learn how to automatically retrieve interaction data next.
Getting started making network graphs with esyN is easy. There are a couple of extra (simple) rules to learn to use the Petri nets tool - let's try it now.
Making a Petri net
- Click on Petri nets in the menu at the top of the page
- Notice that the tool looks almost identical to the Graphs tool we just tried, but with a few extra menu options. We're going to make a simple model of an enzyme catalysed reaction. Click "Place" in the control panel, then click anywhere in the blue canvas to create a place.
- In a Petri net, places represent things we can quantify such as proteins. Let's name this place "Enzyme A". Click on the place we just created, then change it's name in the control panel on the right. Remember to click "Set" to make the change.
- Go through the same steps to create two more places called "Substrate" and "Product"
- In a Petri net, we are describing process that can happen to the places. Let's create a Petri net of the conversion of Substrate into Produce by Enzyme A. First we need to create a Transition node. Select "Transition" from the control panel on the right, then click anywhere in the blue canvas to create the node. Transition nodes are drawn as squares so we can tell them apart from places. Name this transition "Conversion by A"
- As we have said, in a Petri net we use places and transitions to describe processes. Transitions represent actions that can happen to entities we represent with places. In the "Conversion by A" process, Substrate is consumed and Product is produced. Enzyme A is involved but is not consumed or produced.
- To represent this process, we draw arrows from places to transitions, and from transitions to places (i.e. Edges from places to places - or transitions to transitions are not allowed!). These arrows represent the input and output of actions. Enter Edge mode by clicking "Normal Edge" above the network view. To create an edge, first click the source node and then click the target node.
- Create an edge with Substrate as the source and "Conversion by A" as the target. Create another edge with "Conversion by A" as the source and Product as the target. Looking at the graph now, it represents a direct conversion of Substrate to Product. If that was the process we wanted to describe, we would be done. But this reaction requires catalysis by Enzyme A. Let's add that.
- Create an edge from Enzyme A to "Conversion by A". Now Enzyme A is also required as an input for the transition. But as it is, only Product is an output place. So our model says that if the transition happens, both Substrate and Enzyme A will be consumed. Let's fix that.
- Create another edge with "Conversion by A" as the source and Enzyme A as the target. Now our model says that although Enzyme A must be present (it is an input place for the transition), it is not consumed because it is also an output place
That's it! We've created a simple Petri net model of an enzyme-catalysed conversion of one substance into another. Try to add another substrate that is converted by the same enzyme into a different product (note: you don't need to create another place representing the same enzyme). Once you're comfortable with creating the layout of a Petri net, read the Tutorial section which explains how to add more detail to your model e.g. the amount of a substance that must be present before a given transition can happen, or the amount of each output that is produced. There are also some more advanced types of place and transition help with the organisation of large Petri nets. Finally, the Tutorial section also explains how to export and simulate the Petri net you have constructed.
Tutorial
This is the main esyN tutorial and documentation, covering everything from the very basics to the most advanced features. If this is your first time using this site, we recommend you work through the "Getting Started" page for a quick - hands on - introduction
1.0 Background
esyN is a web tool that allows the construction of two distinct types of networks, Graphs and Petri nets. Graphs are simply graphs of nodes and edges, which are useful to visualize the relationships between the objects represented by the nodes. Petri nets are more complex and allow you to visually create a model that describes a process, based on adding an underlying formalism (Petri Nets), which can be simulated.
In addition to being a tool for creating networks, esyN makes it easy to share projects and collaborate on them. Projects can also be made public, allowing anybody to view them.
1.1 Overview
In esyN, all networks are organised into Projects. Each project can contain any number of related networks, which all ultimately form part of a larger underlying network.
1.2 Best practices
This section contains several recommendations from the esyN team to help you effectively use the esyN tool.
- So that we can provide the most flexible tool possible, we do not impose a particular naming system for graphs, however we strongly recommend that users determine an appropriate system and stick to it. This will increase the usability of networks once published, and makes some errors less likely. We recommend sticking to gene symbols as found in the Ensembl database, and we provide a button to search Ensembl for the currently selected node name to make this process easier.
- Provide references for your network so that you have a record of the literature you used, and so that others can find the relevant literature if you publish the network. References can be added to edges in Graphs or to transition nodes in Petri Nets. References are automatically imported along with interactions retrieved from InterMine in the Graphs tool.
- Make use of the options for separating large networks into smaller subnetworks (either by nesting networks or connecting separate networks with disperse nodes). This has two main advantages. Firstly, this will make the network much more human-readable and separates nodes into logical groups that are easier to understand. Secondly, this reduces the size of the network that must be rendered at any one time in the browser, which significantly improves the performance of the tool.
2.0 Graphs
Graphs are used to visualise relationships and interactions between the objects represented by the nodes in the network. This type of representation is increasingly popular in biology as more and more data is available about interaction networks at various scales. The esyN Graphs tool is designed to make it easy to interactively build a network, drawing on this large volume of information.
Firstly, we recommend working through the steps in the "Getting Started" section, to get to grips with the basics of making a network graph
2.1 Building a network graph
Nodes and edges can be created as needed by following the steps outlined in the "Getting started" tutorial. In esyN, when you're working on a network using the Graphs tool, that network is associated with a project. Every project can contain several networks, which are all related to each other. To make organising large networks easier, you can create several smaller networks and then use our "Merge" tool to combine them into one large network. It is important to remember that different networks in one project are assumed to be related to each other, and to form parts of a larger network. To create a new network, click "Network" in the options on the left, then select "New network". This will create a new empty network in the same project. To rename the network, select "Network" then "Rename network" in the controls on the left. Similarly to delete a network, select "Network" then "Delete network" on the left hand side. This option will delete the currently open network. If you delete a nested network, the node that contained the network will not be deleted, it will just become a normal node. To switch to any of the networks in the current project, use the "Select a network" dropdown on the left hand side.
Edges - directed and undirected
Edges connecting nodes can be either directed or undirected. To create an undirected edge, select "Edge" in the panel to the right of the editor, to create a directed edge select "directed edge". As the name implies, a directed edge has a source and a target and typically has a different meaning for the source and target node. For example, in a gene regulatory network, the edge source might be a transcription factor, and the target would be a gene it regulates. Here the direction of the edge tells us which gene is the regulator and which gene is regulated. Undirected edges, in contrast, imply that the connected elements are equivalent in terms of the interaction. A typical example is a physical interaction between two proteins. Here both proteins interact with each other so there is no direction.
Edges - interaction typeBoth directed and undirected edges can be associated with a type. The default type is "None", which means unspecified or unknown. Edge types can also be set to either "Physical" or "Genetic". Edges added automatically will be given the type retrieved from the database.
Edges - referencesIn an esyN graph, the presence of each edge in the network can be justified by adding a reference for it. References are added in the form of PubMed IDs (PMIDs). When interactions are automatically retieved via InterMine, supporting references are automatically stored. To manually edit the references for an edge, first select the edge. The current references can now be seen in the information panel on the right hand side of the viewer. To add a reference, enter the PMID and click "Add". To remove a reference, select it from the list and click "Remove Citation(s)". Multiple references can be selected by holiding ctrl (windows) or cmd (mac). To open a reference, select it from the list and click "Go to selected". This will open the reference in PubMed in a new window or tab.
2.2 Automatically retrieve interactions
As well as manually adding interactions between nodes, for biological networks where nodes represent genes or proteins, esyN provides users a simple interface to retrieve interaction data automatically. Currently this is possible for Human, Fly (D. melanogaster) and Yeast (S. cerevisiae) data.
First create a node, and name it with the name of a gene or protein of interest and select it. Select "Interactions" from the options on the left, or scroll to the bottom of the page to find the "Interactions" section of "Advanced tools". First select an organism and (optionally) a type of interaction to retrieve, then click "Get interactions". A list of interactions will appear below the button within a few seconds. These interactions can be added one by one, or all interactions can be added by clicking "Add all". For all interactions added this way, supporting references are automatically added as properties of the edge. This feature is powered by InterMine databases (flymine, yeastmine, metabolicmine).
Advanced details
When interactions are automatically retrieved, the tool first checks whether the interacting node is already present in the project. If so, the retrieved interaction will be added to the existing node. If the existing node is not in the current network, then a disperse node will be created in the current network.
2.3 Disperse nodes
Disperse nodes are simply a way for there to be multiple references to one entity. As a user, you just need to create a node with the same name as an existing node in another subnetwork and they will automatically be linked. This doesn't add extra functionality, it's just for convenience when working with large, complex networks. It means that you can refer to the same protein multiple times in different subnetworks. When you use the "merge" tool to combine all the separate networks in a project into one, all appearances of each disperse node will be combined into one, which has all the edges added to any of the appearances. Disperse nodes are identified by their blue outline.
2.4 Nested networks
Nested networks are a way to organise a large network into smaller sections, for example grouping all of the nodes and edges related to protein folding or glucose transport together. Using nested networks allows us to see the overall connections between functional groups of nodes without seeing the full detail of those groups (unless we want to). This method of organising network graphs can be thought of as a hierarchy from more abstract at the top level, to more detailed layers below.
For example, if we are describing the interactions and pathways that a specific protein of interest is involved in, we might make a nested network containing the degradation pathway for our protein.
The edges connected to nodes containing networks are also only representative that something in the current network has an edge connecting it to something in the nested network. This interaction must be explicitly created by the user somewhere! This will almost always be an edge inside the nested network, connecting one of the nodes in the nested network to a node in the network in which it is nested. The node that forms the link will be disperse (see above).
For an example project using nested networks, go to the Explore page and open the public project "Example: Nested Networks"
2.5 Merge
Merge all networks in a project"Merging" networks means combining all the networks present in a project and creating one network that contains all the information. During the merge operation, nodes that contain nested networks are removed, as well as their edges. You can merge all networks in your project by selecting "Merge" from the list of options on the left. When the merge operation is complete, the viewer will switch to the merged network.
IMPORTANT: If you merge all networks in a project and then continue working, it is important to delete the previous merge result before repeating the merge operation.
The edges connected to nodes containing networks are only representative of the fact that something in the current network has an edge connecting it to something in the nested network. This interaction must be explicitly created by the user. This will almost always be an edge inside the nested network, connecting one of the nodes in the nested network to a node in the network in which it is nested. The node that forms the link will be disperse (see above and section 3.7 - nested networks in Graphs behave like coarse transitions in Petri nets.)
Merge multiple projectsIn esyN, users can easily combine different projects into one. This enables projects to act like reusable modules. When working on a project, users are able to import any of their own projects, or any published project through the "Merge" menu item on the left of the builder tool page. If both projects contain networks with the same name, it will not be possible to merge them.
2.6 Upload from cytoscape
To upload a network created in Cytoscape to esyN, you must use Cytoscape V3+. From cytoscape, export your network as a "cytoscape json (*.cyjs)" format file. In the exyN Graphs tool, select "Upload", and navigate to your file in the popup box. When you have selected the file, select "Upload" in the popup. The popup box will close once the network has been uploaded. Currently, you can only upload into a new project. Uploading a file will replace the contents of the current project with the network found in the file.
2.7 Upload from tabular data
Interaction data in csv format can be uploaded to EsyN. Select "upload" from the menu to the left of the Graphs tool. In the popup window, select csv format. You will be presented with some simple settings to describe the format of the file: whether or not there is a header row (column names), whether the edges are directed, whether the table contains data on the type of each edge, and which column to use for edge source, target and type. For an undirected network, it does not matter which way round the source and target columns are defined. If the type value for an edge is either "genetic" or "physical", this information will be included in the generated network, anything else will be ignored.
2.8 Downloading and exporting projects
Download an esyN projectesyN projects can be downloaded by selecting "save" > "save offline" from the menu to the left of the Graphs tool. This project can be uploaded later and edited, enabling users to work with the esyN network building tool without registering.
Download in csv formatThere are 3 options for downloading a project as a csv. Importantly, projects can be downloaded with and without merging the networks it contains.
- Export project as csv - this generates a csv file containing all edges in the project, including edges connected to nodes containing nested networks.
- Merge and export project as csv - this generates a csv file containing all edges present after merging the project.
- Export current network as csv - this generates a csv file containing all edges in the network currently loaded in the builder tool.
2.9 Network layouts
Several layout options are available, and can be found in the "Networks" tab in the menu on the left.
- Breadthfirst
- Circular
- Grid
- Random
2.10 Automatically generating a network from a list of genes
By clicking on the "List" button on the left hand panel in the Graph mode you will be able to upload a list of genes, either manually, in comma separated format, or in a file.txt with the gene names arranged in a column. From this list esyN will automatcally retrieve the interactions between these genes from The Biogrid database and generate the associated network. The user has the option to generate the network only between the genes in the uploaded list or include also the interactors of these genes.
2.11 Common sources of error:
- When nesting networks, be careful that the hierarchy of networks makes sense
- Don't create loops of nested networks
- When collaborating on a project with multiple editors, make sure only one person is editing the network at a time - otherwise editors will overwrite each others changes.
3.0 Petri nets
Petri nets are a more sophisticated version of graphs. The nodes in a network are of two types: places and transitions. Places represent objects such as genes, proteins, etc. Transitions represent actions (e.g. phosphorylation, binding, folding, etc). The edges are directed and places connect only to transitions and vice versa. Places contain a given number of tokens, which are then used when the transition is fired. The number of tokens used is the weight of the edge between the place and the transition. The model with its underlying Petri Net formalism allows the user to simulate the networks and make quantitative predictions on its behaviour.
Firstly, we recommend working through the steps in the "Getting Started" section, to get to grips with the basics of making a Petri net
3.1 Making a Petri net interactively
Places, Transitions and edges can be created as needed by following the steps outlined in the "Getting started" tutorial. As for Graphs, any network you create with the Petri net tool is associated with a project. Every project can contain several networks, which are all related to each other. To make organising large networks easier, you can create several smaller networks and then use our "Merge" tool to combine them into one large network. In Petri nets, networks can be nested only inside transitions (see coarse transitions below). It is important to remember that different networks in one project are assumed to be related to each other, and to form parts of a larger network. To create a new network, click "Network" in the options on the left, then select "New network". This will create a new empty network in the same project. To rename the network, select "Network" then "Rename network" in the controls on the left. Similarly to delete a network, select "Network" then "Delete network" on the left hand side. This option will delete the currently open network. If you delete a nested network, the transition that contained the network will not be deleted, it will just become a normal transition. To switch to any of the networks in the current project, use the "Select a network" dropdown on the left hand side.
When constructing a network, certain logical structures are frequently constructed. To speed this process up, several commonly used structures can be created with a single click by selecting "Modules" from the menu on the left. After selecting a module to add, clicking on the network window will create the module at that position. The nodes can now be edited to represent places in your network.
3.2 Tokens, marking, multiplicity
Each place contains a certain number of the objects it represents - the number of tokens. The marking refers a configuration of the network with a given number of tokens in each place. The multiplicity of the edge refers to how many tokens are moved across that edge. If the edge connects a place to a transition, a number of tokens equal to the multiplicity of the edge will be removed from the place. If the edge connects a transition to a place then a number of tokens equal to the multiplicity will be added to the place. A transition can only occur if the number of tokens in all of its input places is at least the value of the multiplicity of the edge that connects them. Transitions that can fire are said to be "enabled". See "Simulating the Petri net" for more information.
3.3 Mass action constant k
To use Mass Action kinetics, each transition can have a parameter, k, associated with it. This parameter is used when simulating the Petri net to calculate the rate of each reaction (transition) at each timepoint in the simulation. By default, k = 1 for all transitions. At each step in the simulation, the rate of each reaction is calculated as follows. For each transition t, with n input places [P1][P2]...[Pn], where [P1] is the number of tokens in place P1
3.4 Inhibitor edges
An inhibitor edge connects a place to a transition (but not the vice versa). If the place contains more or the same number of tokens as the edge multiplicity, then the connected transition cannot happen. This will be true until the number of tokens in the input place for the inhibitor edge is reduced by some other transition.
3.5 Retrieve interactions automatically
In the case of biological networks, where places represent genes or proteins, esyN provides users a simple interface to retrieve other interacting places automatically. Currently this is possible for Human, Fly (D. melanogaster) and Yeast (S. cerevisiae) data.
First create a place, and name it with the name of a gene or protein of interest and select it. Select "Interactions" from the options on the left, or scroll to the bottom of the page to find the "Interactions" section of "Advanced tools". First select an organism and (optionally) a type of interaction to retrieve, then click "Get interactions". A list of interactions will appear below the button within a few seconds. These interactions can be added one by one, or all interactions can be added by clicking "Add all". Adding interactors to a Petri net will create a place node but no edges. This feature is powered by InterMine databases (flymine, yeastmine, metabolicmine).
3.6 Disperse places
Disperse places are simply a way for there to be multiple references to one entity. As a user, you just need to create a place with the same name as an existing node in another subnetwork and they will automatically be linked. This doesn't add extra functionality, it's just for convenience when working with large, complex networks. It means that you can refer to the same protein multiple times in different subnetworks. A disperse place will have the same marking in every subnetwork. When you use the "merge" tool to combine all the separate networks in a project into one, all appearances of each disperse place will be combined into one. Disperse places are identified by their blue outline.
3.7 Coarse places
Instead of containing tokens, places can contain other places (the children). A place that contains other places is called a "coarse place" (or parent node). Coarse places represent concepts that group normal places together e.g. a place "proteins" may contain "kinases, proteases" etc. and in turn "kinases" may contain specific kinases such as "GSK3B" etc. When all the networks in a project are merged, coarse places are removed because they are represent concepts not real biological entities. Coarse places are replaced by the places they contain, and all edges that were connected to the coarse place are copied for every place it contains. Note that the merge function will always create a logical AND relationship between all of the child places for each transition connected to the parent place.
For an example project using nested networks, go to the Explore page and open the public project "Example: Coarse Places"
3.8 Coarse transitions
Coarse transitions are a way to nest a submodel inside a transition. They are used to organise a large model into smaller sections, for example grouping all of the places and transitions and the edges between them related to protein folding or glucose transport together. Using nested networks allows us to see the overall connections between functional parts of our model without seeing the full detail of those groups (unless we want to). This method of organising network model can be thought of as a hierarchy from more abstract at the top level, to more detailed layers below.
The edges connected to transitions containing networks are also only representative that something in the current network has an edge connecting it to something in the nested network. This interaction must be explicitly created by the user. This will almost always be an edge inside the nested network, connecting one of the places in the nested network to the corse transition in the network in which it is nested.
For an example project using nested networks, go to the Explore page and open the public project "Example: Coarse Transitions"
3.9 Simulating the Petri net
We provide a separate R script for simulation, available here. The script is designed to require very minimal editing - only the name of the file containing your Petri net needs to be entered. To export this file from esyN, select "Export" > "Export matrices" from the menu on the left in the Petri nets tool page. This will generate a matrix representation project. This matrix cannot represent nested networks or coarse places, so the project is merged in the background before the matrix is exported.
To simulate your Petri net, you must first download the matrices by selecting "Export > Export matrices" from the menu on the left. This matrix represents the merged project i.e. there will be no references to coarse places or coarse transitions. Petri net data is saved in JSON format, so it can easily be used as input for custom analysis scripts.
The simulation proceeds as follows. In every step of the simulation, one transition will occur. This causes tokens to be moved between places. The number of tokens moved by a transition is determined by the multiplicity of its input and output edges. This number of tokens will be removed from the input place and added to each output place. As the marking of a place cannot be negative, for a transition to occur all of its input places must contain at least as many tokens as the multiplicity of the edge that connects them to the transition. A transition that meets this requirement is able to occur and is said to be "enabled". In every step of the simulation, a transition is selected to fire using the Gillespie algorithm.
3.10 Uploading a Petri net
Uploading from a saved EsyN projectPetri nets can be saved offline in JSON format and uploaded later by selecting "Upload" from the menu on the left.
Uploading from SnoopySnoopy is an advanced tool for the creation of many types of Petri Net. Stochastic Petri Nets created with Snoopy can be uploaded to EsyN by first exporting them for MatLab from Snoopy. This creates a file with the extension '.m' that can be uploaded to EsyN by selecting "Upload" from the menu on the left. Place names and markings, edge multiplicity and parameter k for transitions will all be uploaded. Note that EsyN only supports stochastic Petri Nets with normal and inhibitor edges only. Transitions can only use MassAction kinetics with a single parameter (k).
Uploading from SMBLSystems Biology Markup Language (SMBL) is an open format for the exchange of computational models of biological processes. More details including the schema can be found at sbml.org. EsyN can extract the structure, marking and edge multiplicity from an SBML model to generate a Petri net. This includes any model in Biomodels Database. However, the readability of the model (particularly the node names) varies depending on the source of the SMBL. Currently, no reaction modifiers are included (including inhibitors, catalysts, etc. - in the SMBL format this means any modiferSpeciesReference elements are not converted) because their interpretation in a Petri net is not standard. We are working to improve SBML support and would welcome any feedback at info@esyn.org.
3.11 Saving and exporting projects
Download an esyN projectesyN projects can be downloaded by selecting "save" > "save offline" from the menu to the left of the Graphs tool. This project can be uploaded later and edited, enabling users to work with the esyN network building tool without registering.
Download in csv formatThere are 3 options for downloading a project as a csv. Importantly, projects can be downloaded with and without merging the networks it contains.
- Export project as csv - this generates a csv file containing all edges in the project, including edges connected to nodes containing nested networks.
- Merge and export project as csv - this generates a csv file containing all edges present after merging the project.
- Export current network as csv - this generates a csv file containing all edges in the network currently loaded in the builder tool.
Petri Nets are a graphical representation of a mathematical model that can be represented in matrix form (see Appendix 1 for details). To download this matrix representaion, select "Export" from the menu on the left, then "Export matrices". The matrices will represent the merged project i.e. there will be no reference to any coarse places or coarse transitions.
Export SBMLThe structure of the Petri net, the initial markings and the edge multiplicities will be converted to SBML format for download. Currently, no reaction modifiers are included, meaning that inhibitor edges are not included in the final model. The mass action paramater k is also not included in the SBML model. The exported SBML is in Level 3 Version 1 format validated at sbml.org.
Export referencesAll references associated with any transition in the project can be exported by selecting "Export" from the menu on the left, then "Export citations". This will download a csv file containing the names of transition nodes and the associated references. Only transition nodes that have references associated will have entries in the table.
3.12 Merge
Merge all networks in one project"Merging" a project means taking all the information in all of the networks contained within the project and combining them into one network. In particular, coarse transitions, coarse places and disperse places are processed in the following ways.
Coarse transitionsCoarse transitions are replaced by the networks they contain in the merge operation.
In the merge, parent nodes are replaced with their children.
Disperse places are a way to refer to the same pool of an entitiy in several different locations. Therefore when the networks are merged, there will only be one appearance of the disperse place, which will have all the edges connected to it from all the networks in a project.
Merge multiple projectsIn esyN, users can easily combine different projects into one. This enables projects to act like reusable modules. When working on a project, users are able to import any of their own projects, or any published project through the "Merge" menu item on the left of the builder tool page.
3.13 Common sources of error
- Consider whether AND or OR logic is appropriate for a transition. All input places for a transition must contain more tokens than the multiplicity of the edge connecting them for the transition to be able to occur, therefore an AND relationship exists between the input places.
- Merging coarse places will always create an AND relationship between all contained places for each connected transition
- When nesting networks, be careful that the hierarchy of networks makes sense
- Don't create loops of nested networks
- When collaborating on a project with multiple editors, make sure only one person is editing the network at a time - otherwise editors will overwrite each others changes.
3.14 Adding references for a Petri Net
Each transition node in a petri net can be associated with one or more references. References are added by PubMed ID (PMID). To add a reference, first select the transition node. The list of references for this node will now be visible in the information panel on the right hand side. To add a reference, enter the PMID and click "Add". To remove one or more references, select the references from the list and click "Remove Citations(s)". Multiple references can be selected by holdilng ctrl (windows) or cmd (mac). To open a reference, first select the reference in the list then click "Go to selected". This will open the reference in PubMed in a new tab or window.
3.15 Network layouts
Several layout options are available, and can be found in the "Networks" tab in the menu on the left.
- Breadthfirst
- Circular
- Grid
- Random
4.0 My esyN
If you log in to esyN, you are able to save models online, share models with other people, publish your models and import published models into your workspace.
4.1 Creating an account
Any user can login for free in esyN. We use Mozilla Persona for the authentication process, we means we don't know (or store) your password. Visit their website to discover all the advantages of using Persona.
4.2 What the "My esyN" page looks like
Within the My esyN page you will see three tabs:
- "My Projects": This is a list of all of your saved projects
- "Projects Shared with Me": All the projects that have been shared with you
- "My Published Networks": The projects you have published
4.3 Saving a model and loading a saved model
Anybody user can save projects offline and re-upload them later to continue working on them. Only registered users can save projects online. Please note there is a limit of 10 projects per user that can be saved online. Each saved project has a history of the previous 10 saved versions. Click "Show history" next to a model to view the previous versions. If you open a previous version of a project, make changes and save online, this version is now the newest version that will be opened by simply clicking the project name.
4.3 Viewing project history
Each saved project has a history of the previous 10 saved versions. Click "Show history" next to a model to view the previous versions. If you open a previous version of a project, make changes and save online, this version is now the newest version that will be opened by simply clicking the project name.
4.4 Sharing a model, viewers vs editors
On the right hand side of each project, in the "My Projects" tab, you have the option to edit the properties of the network. By clicking on this option you will be able to change the project name and assign Viewers and Editors. As the name suggests Viewers can only view the network but they cannot save any changes to the shared project, they can however, save the network as a copy, thereby creating their own private copy of the project (not shared). Editors can make and save changes to the shared network.
4.5 Publishing a model
If you log in to esyN, you can easily make any of your projects publicly available. It can then be be viewed (but not modified) by everybody. You cannot edit the published project, but you can continue to work on your copy. You will be able to delete the published project at any time in the "My Published Networks" tab of My esyN
Requirements for published projectsWhen a project is published, the user is asked to provide some additional information that will make their project more useful to others. All of this information will be made public along with the project. Your email address will remain private.
- Username (required). The name you would like to use for your public projects. This could be your own name, or you could publish on behalf of a group and use a name representing the whole group. This is the only piece of extra information that is required.
- Description (optional). This is a brief explanation of the contents of the project and any relevant information, such as what you aimed to include or the method used to determine parameters.
- Tags (optional). Up to 5 keyword tags may be assigned to a public project to quickly describe their content and group similar projects together.
Appendix 1. Petri Nets
Petri Nets are a very simple modelling tool which allows the construction and the simulation of very complex networks. The strength of this approach is that we can write down our network both visually and in a matrix formalism. Petri nets are a modelling tool for networks. They consist of a graph composed of Places (i.e. objects, in our case - molecules, genes etc) represented by circles, and Transitions (i.e. actions, in our case - reactions. e.g. Transcription, Protein Folding etc) represented by squares. Directed arcs connect Places with Transitions and viceversa (i.e. they form a bipartite graph). Places contain a certain number of tokens (i.e. the objects that the place represents). These tokens will then be used by the transition and will populate another place. In the example below, one copy of protein "A" is being phosphorylated by kinase "K" through the transition "PH" and becomes "Aph":Appendix 2. Matrix Form
One of the strengths of Petri Nets is that they can be represented as matrices. In particular we can define:Frequently asked questions
Making a Network
Collaborating
Publishing a Network and Working With Public Networks
Analyses
What is a Node?
Nodes in a Graph
In a Graph, nodes represent the elements that you want to show relationships between. Most of the time, we use nodes to represent genes, proteins or metabolites. Edges placed between nodes represent their interactions. For example we could construct a network in which nodes represent different proteins, with edges representing the known physical interactions between them.Nodes in a Petri net
In Petri nets, there are two basic types of node: Places and Transitions. Places are drawn as circles and represent an entity that you could somehow describe the amount of. This can be a literal amount i.e. number, or a more abstract representation (see What does the marking of a place mean?). For example in a biochemical network, places could be used to represent proteins. Transitions represent actions that happen to whatever is represented by the places. Using our example of places representing proteins, we might create a transition that represents protein folding, or phosphorylation. In the case of phosphorylation, the input places to the transition would be: The protein, its kinase, a phosphate group. The output places would be: The phosphorylated form of the protein, the kinase (it is not consumed).Node Colour Scheme
The colour of a node is a visual indicator of some of it's properties. Normal nodes are white with a black outline. Disperse nodes have a blue outline. Nodes that contain a network have a green outline. Nodes that are parent nodes of other nodes are orange.What is a Place?
What is a Coarse Place? (Parent - Child Relationship)
Network merge
When the network is merged to generate the matrix representation used in a simulation, it is important to remember that coarse places will not appear any more. When the network is merged, coarse places are replaced by the places they contain. Coarse places are an abstract representation that allows us to conceptually group places together, but they are not quantifiable themselves.Advanced use
Coarse places can also be disperse i.e. be referred to in multiple networks.What is a Disperse Place or Disperse Node?
What is a Transition?
What is a Coarse Transition?
What is the difference between Places and Nodes?
Why can't I make an edge between two places?
what is an inhibitor edge?
Can I automatically generate a Graph from a list ?
How do I simulate the network?
Can I retrieve interactions automatically?
Advanced details
Advanced users may wish to note that adding interactors automatically will create an appearance of a disperse node (in a Graph) or disperse place (in a Petri net) if you have already created a node with the same name in another network in the current project. If there is already a node with the same name in the current network, then no new nodes will be created, instead an edge will be added from the selected node to the existing interactor node.What is the difference between a graph and a Petri net?
How do I edit the network preferences?
What are the rules for making Petri nets?
- Edges can only connect places to transitions or transitions to places
- Coarse places can only contain places that are not higher in the hierarchy of coarse places than it is itself
- Coarse transitions cannot contain a network that is higher in the hierarchy of nested networks than the network it is in itself
What does the marking of a place mean?
What does the multiplicity of an edge mean?
What are tokens?
What are the rules for making Graphs?
- A node that contains a network must not contain a network higher that itself in the hierarchy of nested networks
What does "Nest network inside" mean?
Can I recover a deleted network?
How do I select multiple nodes ?
What is the "Search Ensembl" button?
Can I add references to a network?
What is the size limit for an esyN project?
How do I check which drugs interact with the proteins in my network ?
"H. sapiens Gene <- Drug (DrugBank)" from the Organism dropdown menu and then clik the "Fill missing edges" button. This will look for all drugs which interact with any of the proteins products of the genes in the network
How can I highlight a subset of nodes?
How do I share my networks with my collaborators?
What is the difference between a "Viewer" and an "Editor"?
Can a "Viewer" of my project make changes to it?
Someone has shared a network with me, where do I find it ?
Is it possible for two users to work on the same network at the same time?
What does publishing a network mean?
How do I publish a network?
When a project is published, the user is asked to provide some additional information that will make their project more useful to others. All of this information will be made public along with the project. Your email address will remain private.
- Username (required). The name you would like to use for your public projects. This could be your own name, or you could publish on behalf of a group and use a name representing the whole group. This is the only piece of extra information that is required.
- Description (optional). This is a brief explanation of the contents of the project and any relevant information, such as what you aimed to include or the method used to determine parameters.
- Tags (optional). Up to 5 keyword tags may be assigned to a public project to quickly describe their content and group similar projects together.
How do I delete a published network?
What happens if I edit a project I published?
There is a published project I'd like to work on but I can't edit it. How can I work on it?
- If you find a project relevant to you, you are free to make your own copy, and work on that. If you have an esyN account, just click the "Save" tab beside the model viewer and select "Save a copy". This will create a copy of the project accessible from your "My esyN" page. You can open and edit this model, and you are free to save your changes online or offline. Your changes will only affect your copy of the project and will only be visible to you (and anybody you share it with). If you don't have an esyN account, you can also select "Save offline" to download the model. Then open the appropriate tool page (Graphs or Petri nets) and select "Upload" to upload the model to the tool and edit it. To save your changes without an account, you will have to select "Save offline" to download your project, then upload it again later to keep working on it.
- Import a public project into one of your projects. From the relevant tool page (Petri nets or graphs), select "merge" from the menu on the left, then "merge with a public project". This will show you a list of all public projects of the same type, and you can import them directly into your project.
I'm trying to import a public project but it doesn't work
For Petri nets:
- There cannot be transitions with the same name in the two projects
- The marking for any places common to both projects must be the same
- The parent-child relationships for any places common to both projects must be the same
- There cannot be networks with the same name in the two projects
- There cannot be networks with the same name in the two projects
Where do I find the source code of esyN?
I would like to modify an existing network in the database, how do I do it?
What does "open source" mean?
I forgot my esyN password
What analyses can I perform on a network?
What is the Degree of a Node ?
What is the Closeness centrality ?
What is the Betweenness centrality ?
What is the Eccentricity of a Node ?
What is the Radiality of a Node ?
What is the Stress of a Node ?
What is the Centroid Value of a Node ?
What is the Collective Influence of a Node ?
What does it mean to disrupt a network ?
There are many excellent recent studies on this subject in particular [1,2] where they investigate which algorithm is best to achieve such a goal. In [1] the authors conclude that using betweenness with a sequential target attack is best, that is, given a network, calculate the most central node using the betweenness centrality, remove that node and re-calculate the betweenness and restart the cycle. In [2] the authors introduce a new algorithm, the collective influence, which supposedly does better although there is no direct comparison with the results in [1].
In esyN (www.esyn.org) we have implemented both ways allowing the users to apply a number of different algorithms to calculate the most central nodes and then remove these genes from the next calculation and see how the network properties change without that central gene.
References
1. http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0059613
2. http://www.nature.com/nature/journal/v524/n7563/full/nature14604.html
How to embed an esyN network
It is very easy to embed an esyN network in your html page, here are some step by step instructions:
Go to the Explore page and choose a network you want to embed select the network and then click on the "Generate embed link" button below the graph area. This will generate the code that you will need to copy and paste in your HTML page where you want the network to appear. This code will look like:
< iframe class="seamless" scrolling="no" frameborder="0" id="iframe" src="http://www.esyn.org/app.php?embedded=true&publishedid=249&type=Graph" width="500" height="500"> < /iframe >
and it should appear like:
The last part of the link from "&publishedid" which in the examble above is in bold can be changed to display another network and can be copied from the URL of another published esyN network.
N. B. the option embedded=true should always be present when embedding a network.
If you only want to display the interaction network relative to one or more genes you can use the following code:
< iframe class="seamless" scrolling="no" frameborder="0" id="iframe" src="http://www.esyn.org/app.php?embedded=true&type=Graph&query=SOD1&organism=9606&interactionType=physical&includeInteractors=true&source=biogrid" width="500" height="500"> < /iframe >
Here the options available are:
Parameter | Type | Default | Valid Values | Description |
---|---|---|---|---|
interactionType | string | any | any, physical, genetic | retrieves either physical or genetic interactions or both |
type | string | Graph | Graph, PetriNet | Displays either a Graph or a Petri Net |
source | string | NONE | biogrid, pombase, intermine | Repository where the interactions are retrieved from. |
organism | int | NONE | 9606, 7227, 559292, 4896, 10090, 10116, 6239, 7955, 511145 | Selects the organism: H. sapiens (9606), D. melanogaster (7227), S. cerevisiae (559292), S. pombe (4896), M. musculus (10090), R. norvegicus (10116), C. elegans (6239), D. rerio (7955), and E. coli (511145) |
query | string | NONE | one or multiple gene IDs separated by "|" e.g. "SOD1" or "SOD1|CCS|STUB1" | Identifies which gene to search for in the database.
For FlyMine (i.e. organism=7227 and source=intermine), you must only use one type of identifier in the list and you may need to also specify identifierType (see below) |
term | string | NONE | GO:0007346, GO:0006310, GO:0006281, etc | With this option is possible to display the network between genes in a specific GO term. At the moment this option is available only for pombase |
includeInteractors | boolean | true | true, false | This option should be used when displaying a list of genes, if "true" will display all the interactors of the genes in the list, if "false" will display only the inetractions between the genes in the list |
colourSource | boolean | true | true, false | With this option is possible to colour the genes used in the query option
This option is available only for flybase |
colourCommInteract | boolean | false | true, false | With this option is possible to colour the interactors of the genes used in the query option.
This option is available only for flybase |
interInter | boolean | false | true, false | With this option is possible visualise the interactions between the interactors of the genes used in the query option.
This option is available only for flybase |
layout | string | ForceDirected | ForceDirected,circle,concentric | Choose the layout: Force Directed is default, circle or concentric. The concentric layout puts the query nodes in the centre and the interactors of the query genes in a circle surrounding them and all others in the outer circle.
This option is available only for flybase |
identifierType | string | id | id, symbol, any | Specify the type of identifier used. Currently only applies to searches in flybase, flymine and pombase. The option "any" is not compatible with flymine. |
embedded | boolean | false | true, false | This option should be true if you want to embed a network |
Which will appear like the graph on the left for a single gene (SOD1) including his interactors and like the graph on the right for a list of genes (SOD1|CCS|STUB1) without displaying their interactors (i.e. only the interactions between the genes in the list are shown):