Photon Factory

Python-Based Transient Absorption Spectroscopy Data Analysis

PyTrA combines many of the common fitting techniques used in ultrafast transient absorption spectroscopy in an easy to use package.


Transient absorption spectroscopy is a pump probe technique that provides details of how excited molecules’ absorbance changes just after being excited. In the Photon Factory, a pump pulse 150 fs in duration can be tuned to different single wavelengths to excite the molecules into their excited state. Then a probe pulse that contains a full spectrum of colour is used to take a snapshot of the absorbance of the molecules at set time intervals after their excitation. The probe can then be delayed relative to the pump and the decay in the excited molecules can be observed.


Image of data processing in action

Data processing

  • Import csv or txt files of a table with the first column being the wavelength vector, the first row being the time values, and the table being filled with absorbance measurements at that time and wavelength.
  • Import data files from Centre for Chemical and Biophysical Dynamics at Ohio State University.
  • Delete certain traces or spectra.
  • Chirp correction using polynomial fit to the chirp followed by linear interpolation. This is important for the soft modelling techniques.


  • Line plotting and two dimensional contour plot using Matplotlib and Chaco plots.
  • Three dimensional plotting using Mayavi.
  • Multiple traces and spectra can be viewed, normalised or averaged in line plots.

Soft modelling

  • Singular value decomposition with graphical output.
  • Evolving factor analysis.

Hard modelling

  • Fitting kinetics using sums of convoluted Gaussian with exponential decays in Pymodelfit.
  • Fitting of spectra using Gaussians in Pymodelfit.
  • Global fitting managed in Igor Pro later to be handled in Python using the scipy.optimize library.
  • Markov Chain Monte Carlo model fitting of kinetics and spectra.

Help file

Example of hard modelling



If you are an academic the simplest way to install PyTrA is to firstly install the Enthought academic package ( This should install as an executable; you should then be able to use easy_install from the command line to get the other packages.

>>easy_install pymc

The other packages are:

  • pymc - for Markov Chain Monte Carlo
  • pymodelfit - fitting package to manage files
  • pywin32 - for windows users to link with Igor Pro

To download please fill out the form