# Installation

## Spinach 2.5: system requirements

1. Minimum version of Matlab is R2020b 64-bit. Octave is not supported.
2. Spinach requires 1 GB of RAM per CPU core for basic simulations, 2 GB per core for advanced simulations, and 4 GB per core for protein simulations.
3. Spinach requires Parallel Computing Toolbox R2020b. There is no way to make it work if PCT is not installed.
4. Spinach makes heavy use of Optimisation Toolbox R2020b. Functionality will be crippled if OT is not installed.
5. Spinach occasionally uses Deep Learning Toolbox R2020b. Functionality will be crippled if DLT is not installed.

## Installation instructions

1. Add the following directories, including subdirectories, to the the top (not the bottom) of the Matlab path list (Menu/File/Set Path):

      <spinach root>/kernel
<spinach root>/etc
<spinach root>/experiments
<spinach root>/interfaces


You may need to allow write access to <matlab root>/toolbox/local/pathdef.m in order to be able to save the updated path file. Make it dead certain that you get the path settings right and there are no other functions in the path that have the same names as Spinach functions: path and name collision with pre-existing user files is the most popular support forum topic.

2. Disable the automatic parallel pool shutdown by unticking the box at Preferences/Parallel Computing Toolbox.

3. Spinach expects to be able to write into <spinach root>/scratch directory. If you are installing it on a server where the end users would not have write access to Spinach installation location, replace this directory with a link to a location that everyone can write into.

## Getting started

The best way to get started is to look through the code in the /examples directory. Clicking on any Spinach function in the example files and pressing Ctrl-D (Windows) or Shift-Cmd-D (Mac) brings up the function text. All functions are extensively annotated, it is always a good idea to look inside, even if you are not an expert in Matlab programming.

## Multicore and GPU support

The default settings in the example set are conservative. If you have a system with a good Nvidia GPU (we recommend Titan V), more than 16 GB of RAM, and more than 4 CPU cores, you can usually speed most calculations up significantly by adding

    sys.enable={'greedy','gpu'};


to Spinach options specification. See expert-level options for further details.

Version 2.5, authors: Ilya Kuprov