Skip to content

Analyse and plot the elution profile of your SEC-SAXS experiment

License

Notifications You must be signed in to change notification settings

JMB-Scripts/Ragtime-SEC-SAXS-Analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Ragtime-SEC-SAXS-Analysis

This script allows you to analyze and plot the elution profile of your SEC-SAXS experiment using already subtracted (.dat) files. It creates two text files:

1- Ragtime_I0_Rg_01.txt containing three columns: Index of the frame, I(0) and Rg values,

2- Ragtime_I0_MW_02.txt containing three columns: Index of the frame, I(0) and MW values.

Then you can easily retrieve your region under your peak of interest. You can use YOUR preferred software like Excel, Prism, SigmaPlot, etc., to plot the data as YOU want. If you want you can also keep the graphs displayed by the script as a picture (see Output).

Stand-alone versions can be found at the end of the Readme

Your feedback is essential to help me improve and continue this project. You can reach out to me directly at reach out to me via email.

User manual

Prerequisites

  • Python 3.x
  • Necessary packages: numpy, matplotlib, scipy

If needed just type in your terminal : conda install numpy matplotlib scipy

  • SAXS data need to be in Å-1 (for accurate MW estimation).
  • All substracted files need to be in the same folder.

Features

  1. Guinier approximation :
  • Read each .dat files and determine the first usable line based on the provided qmin_offset qmax_offset.
  • Data extraction for q and I(q) in the selected range.
  • Perform a linear regression to calculate Rg (radius of gyration) and I(0) (intensity at q=0).
  • Write data to text file.
  • Display graph with I(0) and Rg vs Frame index
  1. Volume of correlation (VC):
  • Extract data up to q=0.3.
  • Calculate the integral of the product I(q)*q.
  • Calculation of VC, QR (quality factor) and MW (molecular weight).
  • Write data to a text file.
  • Display graph with I(0) and MW vs Frame index

Command syntax

To launch the script in your terminal type:

python Ragtime-v2.0.py

A gui will appear

image

  • Browse : to find the location of the folder containing ONLY the Substracted files from SEC-SAXS.
  • qmin_offset: the offset (in a number of lines) to determine qmin, (like for PRIMUS "range or RAW "nmin").
  • qmax_offset: the offset (in a number of lines) to determine qmax, (like for PRIMUS "range or RAW "nmax").
  • Auto-Guinier: will try to find a suitable guinier zone on the file with the highest intensity (not as good as Primus or Raw but ..).
  • Manual-Guinier: If you know q_offsets then fill the value and check the result
  • Ragtime: will process all the Sub.dat files to calculate Rg, I(0) and Mw
  • Reset : reset everything to the strat
  • Quit : allow you to close the gui

Browse

  • it will point to your folder with all your already substracted files
  • Check headers of the files
  • look for the file call best files with the highest intensity at q=0.1 (arbitrary choice)

Auto Guinier

  • will find the guinier region

  • displays 4 plots: 1- the Form factor

                     2- the Guinier region with its residuals
    
                     3- Normalized Kratky plot
    
                     4- Volume of correlation to estimate the MW
    

image

Manual Guinier

  • will do the same as Auto-Guinier but you need to fill the qmin_offsets) before using it

Ragtime

  • Process alls the files

  • Diplays a 2 plots : 1- I(0) and Rg vs frame number

                    2- I(0) and MW vs frame number
    

image

Tests

It has been tested only on SEC-SAXS data from SWING beamline at Soleil-synchrotron France. (but should work with files from other SEC-SAXS beamlines)

Stand alone versions :

/!\ For the first run be patient, the embeded matplotlib needs to compile and it takes sometimes /!\

Windows is :

Here

Mac.app is :

Here

(if it doesn't start go to Privacy & Security and click on open anyway)

Linux is :

Here

Again your feedback is essential to help me improve and continue this project. You can reach out to me directly at reach out to me via email.

References :

Putnam, C. D., Hammel, M., Hura, G. L. & Tainer, J. a (2007). Q. Rev. Biophys. 40, 191–285. DOI: 10.1017/S0033583507004635

Rambo, R. P. & Tainer, J. A. (2013). Nature. 496, 477–481. DOI: 10.1038/nature12070

J. Perez, P. Vachette, D. Russo, M. Desmadril, D. Durand (2001) J. Mol. Biol., 308 , pp. 721-743. DOI: 10.1006/jmbi.2001.4611

NB:

I named the script Ragtime as a nod to Foxtrot usesd on SWING beamline at Soleil-synchrotron France, the software that inspired it. Just as the Foxtrot dance was originally performed to ragtime music. Ragtime follows the same philosophy as Foxtrot for processing Sec-SAXS data .