6. Remove Dead-End Metabolites

6.1. Pseudocode

This sections presents the pseudocode of the procures that imply finding and removing dead-end metabolites:

  • Find dead-end metabolites on a model

function find_dead_end_metabolites(model)
  dem_list = empty list
  for metabolite in model
      if length(metabolite.consumers) == 0 or length(metabolite.producers) == 0
          dem_list = dem_list + metabolite
  return dem_list
  • Remove dead-end metabolites on a model

function remove_dead_end_metabolites(model)

    do while previous_metabolites != current_metabolites:

        previous_metabolites = model metabolites
        delete all metabolites in find_dead_end_metabolites(model)
        for reaction that produced or consumed dead-end metabolites:
            if reaction produces or consumes 0 metabolites [and is not exchange nor demand]:
                delete reaction on model
        current_metabolites = model metabolites

    return model

6.2. Command

The following command exports a new generated model without Dead-End Metabolites from an input SBML model.

$ contrabass new-model without-dem MODEL.xml