There are two major data structures that are used throughout Spinach: **spin_system**, which contains spin system topology, interaction and basis set information, and parameters, which contains pulse sequence parameters. The **spin_system** structure is generated by the create.m function and updated by the basis.m function during the initialization stage.

## Top level overview

Top level subfields of the spin_system data structure.

## Composition information

Spin system composition information subfield of the spin_system object.

## Interaction information

Interaction specification subfield of the spin_system data structure.

## Relaxation theory

Relaxation theory parameters subfield of the spin_system data structure.

## Chemical reactions

Chemical process specification subfield of the spin_system data structure.

## Basis set information

Basis set information subfield of the spin_system data structure.

## Internal settings

Internal configuration settings subfield of the spin_system data structure.

## Optimal control settings

Optimal control settings subfield of the spin_system data structure.

## Hamiltonian descriptor

Hamiltonian descriptor table used internally by

hamiltonian.m function.