SPYCE: Spectral Python Code for Electrophoresis

Download SPYCE version 2.0 zip »- Sept 7, 2021

The new version (v2.0) of SPYCE simulates electrophoresis techniques on a non-periodic grid using the Chebyshev pseudo-spectral method. SPYCE 2.0 also includes an adaptive mesh to resolve sharp concentration gradients. A manuscript decribing this method is currently under review in the Electrophoresis journal.

Advantages of SPYCE 2.0

  • SPYCE 2.0 is more general than SPYCE 0.1 and is applicable to all one-dimensional electrophoresis problems, such as ITP, tITP, CZE, IEF, FASS, and oscillating electrolytes.
  • SPYCE 2.0 incorprates a moving method method. Consequently, it can simulate electrophoresis problems with lesser number of grid points in shorter time.
  • Users specifically interested in solving problems on perodic domain are suggest to use SPYCE v0.1.

Download SPYCE version 0.1zip »- Sept 9, 2020

SPYCE v0.1 simulates electrophoresis techniques on a periodic grid using the Fourier pseudo-spectral method. The details of the governing equations and the numerical method implemented in SPYCE are provided in the following article:

P Gupta, SS Bahga, Electrophoresis, 2020 pdf »

Advantages of SPYCE

  • Open-source, written in Python 3. Other electrophoresis simulators are either black box simulators with no access to the underlying code or written in MATLAB.
  • The Fourier pseudo-spectral method has high accuracy and takes lower computational time to achieve same degree of accuracy.
  • SPYCE can be run on any operating system. Only requirement is Python 3 along with Numpy and Matplotlib libraries

Current Limitations of SPYCE

  • The Fourier pseudo-spectral method works only for problems that can be simulated on periodic grids.
  • While many electrophoretic processes such as capillary zone electrophoresis (CZE), field amplified sample stacking (FASS), transient-ITP (tITP), and oscillating electrolytes, can be simulated on a periodic grid, processes such as isotachophoresis (ITP) cannot be simulated in a periodic setting
  • We will incorporate pseudo-spectral methods for non-periodic problems such as ITP in SPYCE in near future

Installation and Running SPYCE

  • Install Python 3 along with Numpy and Matplotlib libraries
  • Download SPYCE and unzip the file. The code can be run without any installation
  • For example, on linux, give the following command
    python3 SPYCE.py input/tITPDemo_SPYCE.txt
  • The simulation progress will be displayed on the terminal along with a real-time plot of the simulation as shown in the figure below.
  • The output will be saved in the output folder.
  • An example python script AnalyseData.py has been provided in the Zip file to load and plot the simulation data. This script can be run by giving the following command (on linux terminal)
    python3 AnalyseData.py

Reporting issues

To report an issues with SPYCE and providing feedback please contact Dr. Supreet Singh Bahga on the email provided above. SPYCE is under continuous development and we will be happy to incorporate additional features upon request.