# Description
A simple model with a reversible binding rule using PySB. The example demonstrates initialization, parameter declaration, rule creation, and model simulation.

# Code
```
from __future__ import print_function

Model()

# Declare the monomers
Monomer('L', ['s'])
Monomer('R', ['s'])

# Declare the parameters
Parameter('L_0', 100)
Parameter('R_0', 200)
Parameter('kf', 1e-3)
Parameter('kr', 1e-3)

# Declare the initial conditions
Initial(L(s=None), L_0)
Initial(R(s=None), R_0)

# Declare the binding rule
Rule('L_binds_R', L(s=None) + R(s=None) | L(s=1) % R(s=1), kf, kr)

# Observe the complex
Observable('LR', L(s=1) % R(s=1))

if __name__ == '__main__':
    from numpy import linspace
    from matplotlib.pyplot import plot, xlabel, ylabel, show
    from pysb.simulator import ScipyOdeSimulator
    print(__doc__)
    # Simulate the model through 40 seconds
    time = linspace(0, 40, 100)
    print("Simulating...")
    x = ScipyOdeSimulator(model).run(tspan=time).all
    # Plot the trajectory of LR
    plot(time, x['LR'])
    xlabel('Time (seconds)')
    ylabel('Amount of LR')

```
