TCSPC data processing notes

Notes on processing time-resolved anisotropy data:

1.  Convert SPC binary files to Savuka format:$ cd mydatadir

$ spc2bin-macro.csh

This will convert all Becker-Hickl binary files (.sdt) in the directory to Savuka y-format files.  It will create two directories: savuka-binary and spc-binary – the latter has the raw data in case you want to go back to it – I never delete it. Savuka-binary has the files that Savuka can actually read and is going to be the working directory).

2.  Make list files for sample, nata, blank etc.

$ cd ./savuka-binary               # change to the directory with converted data.

$ ls -1 *.y > sample.dir

$ ls -1 *.y > nata.dir

$ ls -1 *.y > blank.dir

$ vi sample.dir  (Get rid of the lines, i.e. filenames, that you don’t want to process)

$ vi nata.dir

$ vi blank.dir

3.  Take a peek at the raw data to make sure things worked 

$ mergeym (give sample.dir as input file, sample.merge.vxy as output)

This will take all of the data that you have converted and put them into one large Savuka file.  This is useful because in Savuka you can quickly scan through (and overlay) hundreds of TCSPC decays to see if the data collection went smoothly.  For anisotropy data, the order of the data is typically: vv,vh, vv,vh). Every fourth trace for a given sample should overlay with consideration given to power fluctuation, photobleaching etc.  (Power is always logged, so you should check the power log).

4.  Sum relevant data files:

$ sumym (give sample.dir as input, sample.sum.y as output)

5.  Calculate g-factor from nata sum file by integrating and then dividing integral of vv by vh (i.e. sum(buffer1)/sum(buffer2)):

SA> int

SA> val 5 6 4096 4096

6.  Normalize instrument response, make a copy and save as a separate file:

SA> clear –s 4096

SA> mr ir.y

SA> nor –sum 1 1    # Normalize IRF so that sum of all points equals unity

SA> cbf 1 1         # Make a copy since vertical and horizontal use same IRF (L-format)

SA> exp 0           # Use all of the data (expanded mode off)

SA> pl 1 2 1 4096   # Set Plot Limits for buffer 1 to 2 and points 1 to 4096)

SA> mw ir.norm.y    # Write the data to binary file using “matrix write” command.

IMPORTANT: Note that Savuka will handle different instrument responses for the vertical and horizontal channels (e.g., T-format detection).  In this case, you need to make sure that the order of data (buffers) and the point (TAC) range in the instrument response binary file (e.g., ir.y) is exactly the same as for the data.

7. Clear everything and read back the instrument response and the data and start fitting!

SA> mr –ir ir.norm.y  # Matrix read reads the binary file. -ir switch is for IRF

SA> mr sample.sum.y   # This reads the data, also in binary file.

SA> sd 3              # Sets the “stack depth” to 3.

                      # This will plot IRF with the data.

SA> dr 1 2            # Plot buffesr 1 and 2 (vv and vh data)

SA> ir 1              # turn on instrument response convolution

SA> clear 3 4

SA> rms –q –all       # calculate std deviations of each data point (-q is for Poisson).

SA> mul 2 2 0.705     # if fun doesn’t have g-factor built in, multiply vh data by G.

SA> fun 20 20 0

Input guesses and look at the model and fit. To evaluate the quality of the fit, always look at the anisotropy decay using the ani command in Savuka.