The Structural Analysis Tool is a graphical interface to the Structural Analysis Module which implements the Household QR algorithm.
Here we show how this application can be used with JDesigner (It should be noted that this tool will work from CellDesigner or any other SBW compatible application). For this purpose we use a model of the repressilator shown below. The blue colored nodes (Waste_1, Waste_2, Waste_3, Waste_4, Waster_5 and Waste_6) are boundary nodes while the orange colored nodes (tetR0, tetR1, tetRr, tetRp, cIr, cIp, lacIr, lacIp, cI1, lacI1, cI0 and lacI0) are internal to the network.
After opening this model in JDesigner, the user can invoke the Structural Analysis Tool by selecting it from the SBW menu option. (This step assumes that the user has already installed the latest SBW version - 2.4 or above - which supports Conservation Analysis). This menu is shown below.
The model is communicated as a SBML file from JDesigner to the Structural Analysis Tool. This starts the Graphical Interface that in turn calls the edu.kgi.StructAnalysis module through SBW. Results from the module are communicated back to the graphical front end and appear as shown below. The user sees the name of the model, the number of species, the number of reactions and the rank of the model as computed by the Structural Analysis module using Householder QR method. The display has four panels of which the bottom left panel lists a selection of options that the user can choose from. These include the Stoichiometry matrix N, NR matrix, N0 matrix, L0 matrix, L matrix, Gamma matrix, K0 and Nullspace.
Selecting any of these displays the corresponding matrix in grid form in the right bottom panel. These matrices can also be displayed by clicking on the buttons at the bottom. The top right panel is used to display text items such as the summary and the listing of conservation laws.
It can be seen that the summary panel lists the number of conservation laws along with a the list of Independent and dependent species. In this case, these are given by
Independent Species:
cIp, lacIp, tetRp, lacIr, tetRr, cIr, lacI0, tetR0, cI0
Dependent Species :
tetR1, lacI1, cI1
There are three conservation laws given as
1: + tetR0 + tetR1 2: + lacI0 + lacI1 3: + cI0 + cI1
In addition, the user has the ability to test the validity of these conservation laws by running five tests. This can be done by using the “Run Validation Tests” button. In this case, the following output is shown in the summary panel.
Testing Validity of Conservation Laws.
Passed Test 1 : Gamma*N = 0 (Zero matrix)
Passed Test 2 : Rank(N) using SVD (9) is same as m0 (9)
Passed Test 3 : Rank(NR) using SVD (9) is same as m0 (9)
Passed Test 4 : Rank(NR) using QR (9) is same as m0 (9)
Passed Test 5 : L0 obtained with QR matches Q21*inv(Q11)
It can be seen that these tests check the rank of the generated matrices in a number of ways to ensure their correctness. If the generated conserved cycles have an error, the resultant matrices would not allow the ranks to match, and in particular, the product of the conservation matrix Gamma and the Stoichiometric matrix N would not be a zero matrix.
Multiple models can be added to the Structural Analysis tool. The user can in fact select multiple SBML files for input at a time. This allows for the Structural Analysis to be carried out on a number of models. The results from each of these models are stored internally in data sets, and the user can revisit them at any time (as long as the interface is open).
In addition, the user interface has a visual option that allows the stoichiometry and other conservation matrices to be displayed. This is shown below for the case of a simple model.
This is a very useful option when analyzing large models, where the matrices can be large. An example of such a large model is shown below.