## Determining the Adjacency Matrix for a Model

### What Is an Adjacency Matrix?

An adjacency matrix is a square matrix that provides information on reactants and products of reactions in a model. It lets you easily determine:

• The reactants and products in a specific reaction in a model

• The reactions that a specific species is part of, and whether the species is a reactant or product in that reaction

An adjacency matrix is an N-by-N matrix, where N equals the total number of species and reactions in a model. Each row corresponds to a species or reaction, and each column corresponds to a species or reaction.

The matrix indicates which species and reactions are involved as reactants and products:

• Reactants are represented in the matrix with a `1` at the appropriate location (row of species, column of reaction). Reactants appear above the diagonal.

• Products are represented in the matrix with a `1` at the appropriate location (row of reaction, column of species). Products appear below the diagonal.

• All other locations in the matrix contain a `0`.

For example, if a `model object` contains one reaction equal to `A + B -> C` and the `Name` property of the reaction is `R1`, the adjacency matrix is:

``` A B C R1 A 0 0 0 1 B 0 0 0 1 C 0 0 0 0 R1 0 0 1 0 ```

### Retrieving an Adjacency Matrix for a Model

Retrieve an adjacency matrix for a model by passing the ```model object``` as an input argument to the `getadjacencymatrix` method.

1. Read in `m1`, a model object, using `sbmlimport`:

`m1 = sbmlimport('lotka.xml');`
2. Get the adjacency matrix for `m1`:

```[M, Headings] = getadjacencymatrix(m1) M = (5,1) 1 (5,2) 1 (6,3) 1 (7,4) 1 (1,5) 1 (2,5) 1 (2,6) 1 (3,6) 1 (3,7) 1 Headings = 'x' 'y1' 'y2' 'z' 'Reaction1' 'Reaction2' 'Reaction3'```
3. Convert the adjacency matrix from a sparse matrix to a `full` matrix to more easily see the relationships between species and reactions:

`M_full = full(M)`
```M_full = 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0```