You are here: Wiki>AgMathLife Web>MolnetzASS16>MolnetzASS16_3 (02 Jun 2016, AnnikaRoehl)Edit
Exercise 3: Shortest EFMs
Deadline: Tuesday, 14.06.2016, 08:00 a.m.

Shortest EFM
Write a program that:
  • reads in a metabolic network: a struct in a .mat file:
    • S: stoichiometric matrix
    • rev: reversibility-vector (rev(i) = 0: reaction i is not reversible, rev(i) = 1: reaction i is reversible)
    • lb: lower bounds
    • ub: upper bounds
  • The program should do the following:
    Based on the method explained here it should compute the shortest EFM of the network.
  • Output:
    EFM is the computed fuxdistribution. It does not have to be stored.
  • Program call:
    Your program should be called as: EFM=shortestEFM(network)
Note: The program should compute only one EFM!

k-shortest EFMs
Write a program that:
  • reads in a metabolic network: a struct in a .mat file:
    • S: stoichiometric matrix
    • rev: reversibility-vector (rev(i) = 0: reaction i is not reversible, rev(i) = 1: reaction i is reversible)
    • lb: lower bounds
    • ub: upper bounds
  • reads in a second argument, k, where k is the number of EFMs which should be computed.
  • reads in a third argument, which is the name of the output file.
  • The program should do the following:
    Based on the method explained here it should compute the k shortest EFMs of the network. If the number of EFMs in the network is less than k it should compute all EFMs and display: Computed all EFMs. There exists n number of EFMs (n is the number of all EFMs of the network).
  • Output:
    A .mat file where the EFMs are stored: A matrix, where each colum corresponds to one EFM (fluxdistribution).
  • Program call:
    Your program should be called as: KshortestEFMs(network, k)

Please download these networks to test your program.

You can use these play_networks to debug your program. The corresponding EFMs can be found here.

Hint
  • Start with the first programm. If this works, try to implement the loop such that you call the first programm k times. In each loop the solutions before have to be excluded such that you generate new solutions.
  • You have to split the reversible reactions. You have to resplit them for the solution.
  • You have two types of variables: continuous and binary variables. The continuous (t in the paper) are the fluxdistributions. The binary variables (z) indicate if a reaction is active or not. How to connect these two types you will find in the paper.
  • Your objective is to minimize the sum over the zi.

No Explanation
Do not write any explanations. You can get for each program 3 points (thus 6 points in total).

Comments

 
Topic revision: r1 - 02 Jun 2016, AnnikaRoehl
 
  • Printable version of this topic (p) Printable version of this topic (p)