jigcell.sbml2
Class ConservationRelationFinder

java.lang.Object
  extended by jigcell.sbml2.ConservationRelationFinder

public final class ConservationRelationFinder
extends java.lang.Object

Detects, enumerates, and validates the conservation relations in a model. The conservation relations detected by this class are not updated in response to modifications to the model. After changing the model, a new ConservationRelationFinder must be created.

This code is licensed under the DARPA BioCOMP Open Source License. See LICENSE for more details.

Author:
Nicholas Allen

Nested Class Summary
static class ConservationRelationFinder.ConservationRelation
          Represents a single conservation relation.
 
Field Summary
private  int conservationRelationCount
           
private  boolean[] illegalSpecies
           
private  java.util.List speciesIds
           
private  double[][] stoichiometryMatrix
           
 
Constructor Summary
ConservationRelationFinder(Model model)
          Computes the conservation relations for a model.
 
Method Summary
private  void addSpeciesStoichiometry(Model model, java.util.List modelSpecies, int reactionIndex, SpeciesReference reference, boolean positive)
           
private static int countDependentRows(double[][] matrix, int rowCount, int columnCount)
           
private  void fillStoichiometryMatrix(Model model, java.util.List speciesList, java.util.List reactions, int speciesCount, int reactionCount, int entryCount)
           
 java.util.List getConservationRelations()
          Computes the List[ConservationRelation] of conservation relations in the model.
private static void multiplyAndAddToRow(double[][] matrix, int entryCount, int row1, int row2, double coefficient)
           
private static void multiplyRow(double[][] matrix, int entryCount, int row1, double coefficient)
           
private static void reduceMatrix(double[][] matrix, int rowCount, int columnCount, int entryCount)
           
private static void swapRows(double[][] matrix, int row1, int row2)
           
 boolean validateConservationRelations(java.util.List userRelations)
          Checks that the given conservation relations are consistent with the conservation relations found in the model.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

illegalSpecies

private final boolean[] illegalSpecies

stoichiometryMatrix

private final double[][] stoichiometryMatrix

conservationRelationCount

private final int conservationRelationCount

speciesIds

private final java.util.List speciesIds
Constructor Detail

ConservationRelationFinder

public ConservationRelationFinder(Model model)
Computes the conservation relations for a model.

Parameters:
model - SBML model
Method Detail

countDependentRows

private static int countDependentRows(double[][] matrix,
                                      int rowCount,
                                      int columnCount)

multiplyRow

private static void multiplyRow(double[][] matrix,
                                int entryCount,
                                int row1,
                                double coefficient)

multiplyAndAddToRow

private static void multiplyAndAddToRow(double[][] matrix,
                                        int entryCount,
                                        int row1,
                                        int row2,
                                        double coefficient)

reduceMatrix

private static void reduceMatrix(double[][] matrix,
                                 int rowCount,
                                 int columnCount,
                                 int entryCount)

swapRows

private static void swapRows(double[][] matrix,
                             int row1,
                             int row2)

getConservationRelations

public java.util.List getConservationRelations()
Computes the List[ConservationRelation] of conservation relations in the model.


validateConservationRelations

public boolean validateConservationRelations(java.util.List userRelations)
Checks that the given conservation relations are consistent with the conservation relations found in the model.

Parameters:
userRelations - List[ConservationRelation] of proposed conservation relations

addSpeciesStoichiometry

private void addSpeciesStoichiometry(Model model,
                                     java.util.List modelSpecies,
                                     int reactionIndex,
                                     SpeciesReference reference,
                                     boolean positive)

fillStoichiometryMatrix

private void fillStoichiometryMatrix(Model model,
                                     java.util.List speciesList,
                                     java.util.List reactions,
                                     int speciesCount,
                                     int reactionCount,
                                     int entryCount)