Team:Fudan/Software/Netro

Fudan LOGOhead

Nεtro
iGEM 2017 FUDAN

INTRODUCTION

Hey! Check out that slider over there!

Nεtro is born to help you design and explore your own gene transcription network. Most importantly, you will be able to manipulate the parameters in the model and get the response of the network in real time. Nεtro's running environment is browser, and that's basically all you need. (Older versions of some browsers might not support Nεtro, though. So if you encountered any funny error, try updating or changing your browser.) Nεtro is designed to be friendly to all users, and no knowledge about programming is required. Just follow the instructions and have fun.

As is discussed in our Modelling work, there are two potential models to analyze a gene transcription network, the Hill Equation Model, and the Probabilistic Model. The former one is easier and more empirical, while the later one is more fundamental and rigorous, able to achieve higher flexibility with the cost of a little bit of simplicity. In Nεtro, we choose the Hill Equation Model as our kernel since it has been familiar to most people for a long time, and thus might be easier to be understood.

A detailed documentation is included bellow for you get familiar with Nεtro. Nεtro will be happy to play with you even if you haven't read the documentation, though. But we still recommend going through the documentation so that you will get a more comprehensive understanding of the principles of Nεtro and thus become a better friend of it. Remember to come back to the doc if you get a confusing 'WARNING' while playing. If you meet any difficulty that is unexplained in the documentation, please contact us via 15307130257@fudan.edu.cn.

You can download the local version of Nεtro on Github.

Remember we have promised to demonstrate an interesting usage of our old friend, matrix, previously in our Model? You will see the magic in the 'Algorithm Uncovered' section at the end of this page.

Demonstration

Documentation

DOCUMENTATION

In this documentation, you will get to know some details of Nεtro, especially several rules and error information that you might need to keep in mind.

With Nεtro, you will design your own network first, then you set the values or ranges of some parameters. The network's property at steady state will be shown at last and ready to be manipulated in real time. Among them, network design is the most important step of all. So let's start with how to create a proper network.

Rule One: don't feed too much!
The network should respond to a single signal, tTa in our project for example. In Nεtro, the signal is simply referred to as 'Signal', and cannot be changed. All the other parts of your network should be controlled by the concentration of Signal, either directly or indirectly. To analyze a network influenced by more than one signal is beyond the ability of Nεtro (It's just a kid!). A 'Network Incomplete' warning will pop out if something in your network is not in the downstream of Signal.

All the other parts of the network is free for you to name. But we will suggest avoid some special symbols like '<', '>', '$', etc. Simple notations like 'A1', 'LacI', or 'Nεtro_X' will be the best.

Rule Two: hit it where it hurts most!
You need to know what the network is composed of. And the answer is transcription factors. Put the TFs at the center of your mind and the base of your network. Make sure you give different TFs different names, even when they are on the same DNA. Take our project as an example, factor X1, Y and reporter A are attached together, all promoted by tTa, the signal. Then you should define 'Signal Promote X1', 'Signal Promote Y', 'Signal Promote A'. In this case, the concentrations of all three substances at steady state will only differ in a multiplier (synthesis rate / decay rate). And since A will have no effect on other things, you may choose not to define the last one.

*Rule Three (Crucial): what goes around doesn't come around, literally!
This means the network cannot be recurrent, or to put it another way, no TF can regulate itself, neither directly nor indirectly. A recurrent network is very likely to form an unstable system. Such system could explode, vibrate, or collapse into chaos. Others might own more than one steady state (attractor) on the phase space. These situations belong to the field of Dynamic System. Sounds dreadful? Nεtro agrees! Anyway, you should avoid creating a recurrent network. Otherwise, A 'Network Recurrent' warning will pop out.

*Rule Four (Crucial again): don't poke your nose into others' business!
This means the network must be orthogonal. Each TF should have its own target(s) and not bother each other. This does not mean that one TF can only have one target, because several targets can be put into the same DNA and different DNAs can have the same activator. Meanwhile, a TF can either promote or repress, a target can either be promoted or be repressed. Otherwise, An 'Overloaded' warning will pop out.

Some subtle situations might arise here. For example, you have 'A Promote B', 'B Promote C', and 'A promote C'. It is recurrent? Nope. Is anything overloaded? Nope. Yet it is not allowed! Because both A and B can promote C, they have to be the same TF according to the orthogonal rule. So that 'A Promote B' is a self-regulating relation, and the 'Network Recurrent' warning will pop out in such case. The night is dark and full of terrors, fellows! Be aware!

Please note that we do not mean recurrent networks and nonorthogonal networks are not good. They are widely used on the contrary, and may possess fascinating properties. The problem here is that a recurrent or nonorthogonal Hamlet could mean a thousand Hamlets, making it extremely hard to theorize and generalize. A software capable of analyzing such networks is likely to be much more complex than Nεtro, and is against our intention to provide a easy-to-use tool.

Besides this documentation, you can also find a short tutorial in each section. They will show you what you can do and what might cause errors. You will definitely get familiar with Nεtro in less than a minute under their help. After reading, you could fold them up by clicking the 'FOLD' button for a better view.

A software can never be perfect even after thousands of tests. We tried to protect Nεtro from all kinds of errors and illegal operations, but bugs could appear where we have never been searching before. We will appreciate any kind of feedback or even improvement from you.

Correspondence: 15307130257@fudan.edu.cn.

Network Design

Welcome to Nεtro! In the following sections of this page, we will guide you step by step until you get your own toy to play with. Now let's design the gene transcription network first.

You can name the elements in your network as you wish. But keep in mind that Nεtro is case sensitive.

Click the button to choose the relation between a transcription factor (TF) and its target.

Click the button to confirm your design of the corresponding path. A confirmed path will be displayed in grey.

Click if you would like to change something, and if you want to delete a path.

You can add a new path (or a thousand if you like) in your network by clicking

Once you have finished your masterpiece, click to confirm the entire network.

If Nεtro feels something wrong in your network, it will warn you with a Click the warning button and it will return to normal so that you can confirm again (you should correct your network first).

With a real masterpiece, you can move on to the next section, and the confirm button will turn to so that you can create a brand new network at any time.

Name:TF Relation Name:Target

Constant Parameters

The synthesis rate and decay rate of the transcription factors in your network is defined here. The synthesis rate (Synrate) means the maximum rate of producing that protein. Please note that its unit is set to be 'μM/min'. The decay rate (Derate) is a factor with unit '/min', indicating the percentage of a protein that dies in one minute. So the equation describing the concentration change of a protein X will be:

d[X]/dt = Synrate * H - Derate * [X]

where H is the result of the Hill Equation.

Adjustable Parameters

Now that your network and some required parameters are prepared, Nεtro is ready to show you the result. You can confirm all the way to the 'result' section now. But why the hurry? Here are some other things you might want to customize by your self.

Nεtro provides the powerful ability for you to manipulate the parameters and get the outcome in real time. You can set the manipulation range of them in this section. These parameters are listed bellow.

Your net work is described by Hill Equations, and a Hill Equation

H = [Target]^n / (Kd + [Target]^n) or

H = 1 / (Kd + [Target]^n)

contains two parameters, Kd and n. Different Kd's and n's are automatically assigned to each pair of TF-Target. Nεtro has already detected the same pair of TF-Target (if exists), and combined them into a single equation. If this is not like what you have imagined in mind, you'd better check the design of your network (if confused, the documentation will help you get a better understanding of how Nεtro works).

Please note that these parameters are shown in natural logarithm. There are also default values for them, with Kd's ranging from -6 to 1, and n's from 1 to 4. You can simply click the confirm button to apply the default setting.

If you get a warning, please check if the minimum value is bigger than the maximum, or if the value of n is nonpositive.

Result

The final result will be shown in this section, after you set the range of the Signal. The values should also be in natural logarithm. The default minimum is -6, and the maximum is 1.

If you get a warning, please check if the minimum value is bigger than the maximum.

Algorithm Uncovered

Hope you have had good time with Nεtro.
Now, if you have read the documentation, or have got any warning yourself while designing the network, you might wonder how does Nεtro detect those errors, like recurrence? In the video below, we uncover the algorithm behind Nεtro. You will find that matrix plays a central rule in the analysis of a network. Hope you find magic in the beauty of mathematics.