640 likes | 729 Views
Seminar in bioinformatics. Computation of elementary modes: a unifying framework and the new binary approach. Julien Gagneur and Steffen Klamt. BMC Bioinformatics 2004, 5:175. Elad Gerson, Spring 2006, Technion. Agenda. Quick overview of last week’s lecture. Extension of the EP concept.
E N D
Seminar in bioinformatics Computation of elementary modes: a unifying framework and the new binary approach Julien Gagneur and Steffen Klamt BMC Bioinformatics 2004, 5:175 Elad Gerson, Spring 2006, Technion.
Agenda • Quick overview of last week’s lecture. • Extension of the EP concept. • Enter EM. • General framework for EM computation. • Reversible reactions split. • Network compression. • Post processing. • Some implementation tweaks.
Last week on bioinformatics seminar! Given a metabolic network we wish to find all the possible flux distributions which results in a steady state. Meaning, the overall flux in a pathway is 0.
Last week on bioinformatics seminar! This is done by describing the pathway as a stoichiometric matrix S, solving the equation –
Last week on bioinformatics seminar! Notice that we are interested only in solutions where (sign suggests reaction’s direction). Solution space is spanned by linearly independent vectors. We look for a spanning set s.t. every solution can be written as a linear combination of the spanning vector where all coefficients are non-negative (Genetically independent). Those solutions are called Extreme pathways (EP). Can be found using the Null Space Approach (NSA) Algorithm.
Problem Biology suggests some reaction are reversible. Consider the following network for instance – R5 can work in both directions (Not simultaneously!)
Solution ? Remove the restriction, signs suggests direction .. Bad idea .. • Not all reactions are reversible. • Solutions no longer take the form of a polyhedral cone.
Solution ! Split the reversible reactions .. Find Extreme Pathways using the NSA algorithm. Post process found EPs, merge split reactions (“opposite direction” should be set with a negative sign). Post processed EPs are now called - Elementary Modes (EM). R5a R5b
Compressing the network Removing redundancies Can be united..
Compressing the network Removing redundancies R1 is null in any feasible steady state
Compressing the network Removing redundancies Contradict each other .. Can be eliminated.
Compressing the network Removing redundancies Active in any stead state.
Compressing the network Removing redundancies • Some redundancies can be detected as dependent linear rows in the kernel matrix. • Iterative approach, remove redundancies until non detected. • Produce better results.
General framework Preprocessing - • Metabolic networks yield deeper insight of organisms metabolism. • Failure modes analysis will provide • Crucial parts identification. • Suitable targets for repressing undesired metabolic functions. • Apply NSA algorithm. • Post process.
One more tweak • The authors offers an efficient implementation to the NSA and CBA (Combined basis – Schuster et. al.) algorithms. • Using binary representation for vectors. • Fast bit operators. • Efficient memory usage (up to 1.6% of original!)
Seminar in bioinformatics Minimal cut sets in biochemical reaction networks Steffen Klamt and Ernst Dieter Gilles Bioinformatics Vol. 20 no. 2 2004, pages 226–234 Elad Gerson, Spring 2006, Technion.
Abstract • Motivation • Metabolic networks yield deeper insight of organisms metabolism. • Failure modes analysis will provide • Crucial parts identification. • Suitable targets for repressing undesired metabolic functions. • Results • The biochemical networks minimal cut sets concept. • Algorithm which computes MCS with respect to an objective reaction. • Potential applications includes • phenotype predictions. • Network verifications. • Structural robustness and fragility assessment. • Metabolic flux analysis. • Target identification in drug discovery.
Introduction • Assume we wish to prevent the production of metabolite X. • i.e. there is no balanced flux distribution possible which involves obR. • Can be done by gene deletion or enzyme inhibition.
Introduction Definition - We call a set of reactions a cut set(with respect to a defined objective reaction) if after the removal of these reactions from the network no feasible balanced flux distribution involves the objective reaction.
Introduction • That’s easy .. Consider C0 = {obR} • One might wish to cut the reaction at the beginning. • What if there are numerous obR’s ? • Simultaneous failure might be achieved more efficiently.
Introduction • Take two – Remove all reactions except for oBR. • Not efficient. • Notintelligent.
Introduction • Consider C1 = {R5, R8} • Sufficient. • Neither the removal of R5 nor R8 is sufficient. • No subset of C1 is a valid cut set → C1 is minimal.
Introduction Definition - A cut set C (related to a defined objective reaction) is a minimal cut set (MCS) if no proper subset of C is a cut set. Can you spot all the MCS in the network ?
Introduction Is C2 = {R2, R4, R6} minimal ?
Introduction Is C3 = {R2, R5, R7} ?
Introduction How about C1 = {R1} ?
Introduction • OK, what about Graph disconnectivity algorithms ? • No good, They don’t take the hypergraph nature of metabolic pathways into account.
The algorithm Initialization • Calculate the EMs in the given network • Define the objective reaction obR (3) Choose all EMs where reaction obR is non-zero and store it in the binary array em_obR (em_obR[i][j]==1 means that reaction j is involved in EM i) (4) Initialize arrays mcs and precutsets as follows (each array contains sets of reaction indices): append {j } to mcs if reaction j is essential (em_obR[i][j]=1 for each EM i), otherwise to precutsets
The algorithm (5) FOR i=2 TO MAX_CUTSETSIZE (5.1) new_precutsets=[ ]; (5.2) FOR j = 1 TO q (q: number of reactions) (5.2.1) Remove all sets from precutsets where reaction j participates (5.2.2) Find all sets of reactions in precutsets that do not cover at least one EM in em_obR where reaction j participates; combine each of these sets with reaction j and store the new preliminary cut sets in temp_precutsets (5.2.3) Drop all temp_precutsets which are a superset of any of the already determined minimal cut sets stored in mcs (5.2.4) Find all retained temp_precutsets which do nowcover all EMs and append them to mcs; append all others to new_precutsets ENDFOR (5.3) If isempty(new_precutsets) (5.3.1) Break ELSE (5.3.2) precutsets=new_precutsets ENDIF ENDFOR (6) result: mcs contains the MCSs
Running example Initialization – Calculate EM We are only interested in EM containing obR
Running example Initialization mcs = {{1}}, precutsets = {{2},{3},{4},{5},{6},{7},{8}}
Running example I = 2, j = 1 mcs = {{1}}, precutsets = {{2},{3},{4},{5},{6},{7},{8}} new_precutsets = {} temp_precutsets = {}
Running example I = 2, j = 1 mcs = {{1}}, precutsets = {{2},{3},{4},{5},{6},{7},{8}} new_precutsets = {} temp_precutsets = {{1 2}}
Running example I = 2, j = 1 mcs = {{1}}, precutsets = {{2},{3},{4},{5},{6},{7},{8}} new_precutsets = {} temp_precutsets = {{1 2}, {1 3}, {1 4}, {1 5} {1 6}}
Running example I = 2, j = 1 mcs = {{1}}, precutsets = {{2},{3},{4},{5},{6},{7},{8}} new_precutsets = {} temp_precutsets = {{1 2}, {1 3}, {1 4}, {1 5} {1 6} {1 7} {1 8}}
Running example I = 2, j = 1 mcs = {{1}}, precutsets = {{2},{3},{4},{5},{6},{7},{8}} new_precutsets = {} temp_precutsets = {{1 2}, {1 3}, {1 4}, {1 5}, {1 6}, {1 7}, {1 8}}
Running example I = 2, j = 2 mcs = {{1}}, precutsets = {{2},{3},{4},{5},{6},{7},{8}} new_precutsets = {} temp_precutsets = {}
Running example I = 2, j = 2 mcs = {{1}}, precutsets = {{3},{4},{5},{6},{7},{8}} new_precutsets = {} temp_precutsets = {}
Running example I = 2, j = 2 mcs = {{1}}, precutsets = {{3},{4},{5},{6},{7},{8}} new_precutsets = {} temp_precutsets = {{2 4}}
Running example I = 2, j = 2 mcs = {{1}}, precutsets = {{3},{4},{5},{6},{7},{8}} new_precutsets = {} temp_precutsets = {{2 4},{2 6},{2 7},{2 8}}
Running example I = 2, j = 2 mcs = {{1}}, precutsets = {{3},{4},{5},{6},{7},{8}} new_precutsets = {{2 4}} temp_precutsets = {{2 6},{2 7},{2 8}}
Running example I = 2, j = 2 mcs = {{1}}, precutsets = {{3},{4},{5},{6},{7},{8}} new_precutsets = {{2 4},{2 6},{2 7},{2 8}} temp_precutsets = {}
Running example I = 2, j = 5 mcs = {{1}}, precutsets = {{5},{6},{7},{8}} new_precutsets = {{2 4},{2 6},{2 7},{2 8}, ..} temp_precutsets = {}
Running example I = 2, j = 5 mcs = {{1}}, precutsets = {{6},{7},{8}} new_precutsets = {{2 4},{2 6},{2 7},{2 8}, ..} temp_precutsets = {{5 6},{5 7},{5 8}}
Running example I = 2, j = 5 mcs = {{1}}, precutsets = {{6},{7},{8}} new_precutsets = {{2 4},{2 6},{2 7},{2 8}, ..} temp_precutsets = {{5 6},{5 7},{5 8}}
Running example I = 2, j = 5 mcs = {{1}, {5 6}}, precutsets = {{6},{7},{8}} new_precutsets = {{2 4},{2 6},{2 7},{2 8}, ..} temp_precutsets = {{5 7},{5 8}}
Running example I = 2, j = 5 mcs = {{1}, {5 6}, {5 7}}, precutsets = {{6},{7},{8}} new_precutsets = {{2 4},{2 6},{2 7},{2 8}, ..} temp_precutsets = {{5 8}}
Running example I = 2, j = 8 mcs = {{1}, {5 6}, {5 7}, {5 8}}, precutsets = {} new_precutsets = {{2 4},{2 6},{2 7},{2 8}, ..} temp_precutsets = {}
Running example I = 3, j = 2 mcs = {{1}, {5 6}, {5 7}, {5 8}}, precutsets = {{2 4},{2 6},{2 7},{2 8},…{4 6},…} new_precutsets = {} temp_precutsets = {}
Running example I = 3, j = 2 mcs = {{1}, {5 6}, {5 7}, {5 8}}, precutsets = {…{4 6},…} new_precutsets = {} temp_precutsets = {…}