Implementing a new EPR lineshape parameter for organic radicals in carbonaceous matter
© Bourbin et al.; licensee BioMed Central Ltd. 2013
Received: 13 June 2012
Accepted: 18 June 2013
Published: 17 July 2013
Electron Paramagnetic Resonance (EPR) is a non-destructive, non-invasive technique useful for the characterization of organic moieties in primitive carbonaceous matter related to the origin of life. The classical EPR parameters are the peak-to-peak amplitude, the linewidth and the g factor; however, such parameters turn out not to suffice to fully determine a single EPR line.
In this paper, we give the definition and practical implementation of a new EPR parameter based on the signal shape that we call the R10 factor. This parameter was originally defined in the case of a single symmetric EPR line and used as a new datation method for organic matter in the field of exobiology.
Combined to classical EPR parameters, the proposed shape parameter provides a full description of an EPR spectrum and opens the way to novel applications like datation. Such a parameter is a powerful tool for future EPR studies, not only of carbonaceous matter, but also of any substance which spectrum exhibits a single symmetric line.
The paper is a literate program—written using Noweb within the Org-mode as provided by the Emacs editor— and it also describes the full data analysis pipeline that computes the R10 on a real EPR spectrum.
KeywordsElectron paramagnetic resonance Lineshape Solid state chemistry Carbonaceous matter Exobiology Literate programming Python
Background: Necessity for a shape factor definition
In the field of exobiology, we need to determine the age of organic material in rock samples. Isotopic methods are commonly used to date the rock itself, but the organic matter may not be syngenetic with the rock. A novel solution based on Electron Paramagnetic Resonance (EPR) was proposed; it requires the determination of a new EPR parameter, the R10, from the EPR spectrum of the rock sample, from which the age can be computed from an empirical log-linear correlation that was uncovered in. Knowing the distribution of the different parameters that contribute to the R10, we may also provide a confidence interval for the age thus determined. In the following, we shall explain what the classical EPR parameters are and what the proposed new parameter brings to the table, and then describe the algorithm for the determination of the R10: how to process the data files generated during an EPR experiment, extract the classical EPR parameters and compute their distribution in order to have an estimate of their error; compute the new R10 parameter and its distribution from the preceding distributions. Thanks to this paper, scientists may themselves extract the R10 parameter from EPR data and use it not only for datation purposes but also to uniquely characterize the observed EPR spectrum lineshapes. Our goal is to automate a manual process that has proved scientifically successful yet cumbersome and tedious when applied on datasets that are getting larger. In that version of our code, some of our algorithmic choices just mirror the —successful— manual process. We have chosen the Python language because of its high level, ease of development and popularity; last but not least, it also provides powerful libraries for scientific development, and speed of execution turned out not to be a key factor for our goalsa. The Python code runs inside the Sage computing platform, which aims at providing a single computing environment both for numerical and symbolic computations.
EPR lineshapes and lineshape parameter R 10 for different limit regimes of dipolar broadening
High: dipolar and
Gaussian to Lorentzian
where B is the applied magnetic field, Bres the field at the centre of the line (maximum of absorption), App the peak-to-peak amplitude and Δ Bpp the peak-to-peak linewidth (Figure1).
For lower dimension of spin spatial distribution (d<3), the Fourier transform can only be calculated numerically. Figure1 shows the theoretical EPR spectra corresponding to the Gaussian, Lorentzian (d=3) and low dimensional (d=1 and 2) cases. The wings of a Gaussian line fall off faster than those of a Lorentzian line while the wings of an EPR spectrum corresponding to a low-dimensional distribution fall off more slowly, giving rise to a so-called stretched Lorentzian lineshape. Originally, the R10 lineshape factor was imagined after studying the spectra in a coordinate system (x,y) in which the difference between the lineshapes stands out more clearly, and where the Lorentzian becomes a straight line:
where F=FG or F d . We shall thus define two functions, one that creates the new abscissas from the old x ≡B and the other that creates the new ordinates from the old x and y ≡F(B−Bres):
Following the Noweb literate programming style as described in, the above code is called a code chunk, with a unique name given between angle brackets and followed with an equal sign, together with a corresponding unique number made up of the page number and a letter starting at a and increasing alphabetically on a given page; that number is mirrored in the left margin for easy reference. The number on the end of line after the code chunk name indicates the code chunk where the current code chunk is used. Often, we shall add some code to an already existing code chunk, and that will appear in two different ways: first, the name between angle brackets will be followed by an equal sign attached to a plus sign (instead of a lone equal sign), and the numbers on the end of line will also indicate where the code chunk gets some new code (a small triangle is added to that number, i.e. ⊲ for previous existing definition, and ⊳ for the next new code).
To compute the integral in equation (8), we shall follow the method originally used: a simple top-left corner rectangular approximation. That allows full reproducibility with the original manual method that was used before automation with a program; in the future we may replace it with a more accurate algorithm if there is a general agreement on the need to depart from the manual processing. We shall thus consider a matrix matrixXYL —a numpy array— made up of the abscissas of the spectrum in the first column, the ordinates of the spectrum in the second column, and the ordinates of the ideal Lorentzian in the third column, with the number of lines corresponding to the number of data-points on the curves:
The matrixXYL will be defined as a numpy array, and we use the sum function from the same library:
In order to construct the matrix matrixXYL, we need the data abscissas and ordinates and we use equation 5 for the yL coordinates of the ideal Lorentzian curve:
Again, we need to use the array data-structure, so we import it:
Operationally, the R10was only defined separately for the parts of the curve which abscissas x are larger or smaller than the resonance field Bres, and we thus define an operator testSameSideofBres that will enable us to build two matrices matrixXYL, one for each side:
In the case of the left hand side, we look for x lower than Bres, and the opposite for the right hand side:
We shall thus obtain two values of R10, one for each side of Bres,
and we shall then use their average as the final value for the spectrum under study, cf. equation (9):
We need to be careful with the order of the values in the matrix giving the coordinates in the new coordinate system defined in equation (7): if we start from small values of x in the original frame, then, for the left hand side of Bres, values in the new frame will decrease, whereas values on the right hand side will increase. Thus, values on the left side must be reversed, whereas that will not be necessary for the right hand side.
All the relevant discussion about the experimental part of the work, that involves collecting EPR data on the rock samples, can be found in. In the current paper, we focus on the specific data handling and processing in order to extract the R10parameter from an EPR spectrum and estimate the associated error. All computations were made in the Sage computing environment, with imports from the Numeric Python library.
In the spirit of reproducible research, the paper is written in the literate programming style: the code and its explanationbare intertwined in a single place, and a particular program is then used to extract either the source code for execution on a computer or the literate paper for reading by humans. Literate programming tools exist, and we use Noweb and Org-mode[23, 24] within Emacs with Evil mode to enable vi commands. We also make use of the Sagetex package that comes with the Sage distribution, that allows Sage code to be executed when compiling the LaTeX source of the paperc, and we have a home-built script that manages to combine Org-mode with Sagetex together with a Noweb output. Figures are produced either with Sage and Sagetex, or with Asymptote: it allows us to program figures, and thus make them executable, and embeddable in the LaTeX source code. The code will be made available through the team’s websited.
Processing data from an EPR file
Removing the background signal
EPR spectra on which the R10factor was to be measured were selected for their symmetric and well-defined single absorption derivative signal. As usual in EPR studies, the large scale background signal was subtracted with a third degree polynomial fitted on the smooth parts of the spectrum where the signal variations are only due to noise, which in practice correspond to the first and last 10% data points in a typical spectrum.
From now on, the spectrum will be understood as the baseline corrected raw spectrum.
Reading the data for the spectra
EPR Spectra are given as .txt files, with a name made up of the following informations:
For example, gunflint_ambient_2mW_1scan.txt corresponds to a sample named gunflint, studied at ambient temperature with a microwave power of 2mW using 1 scane.
The first two lines must be skipped when loading data: they provide the EPR acquisition parameters and the file description. EPR text files comprise three columns, giving respectively the point index (starting from one and running to the total number of points recorded), the datapoint abscissa —the magnetic field B— and the datapoint ordinate —the intensity in arbitrary units. To ease data manipulation we extract two lists, abscissas and ordinates.
and the load function loadtxt will be taken from the pylab library.
We also have to make sure that the DATA variable is defined, which is normally automatic within Sage:
In order to plot the spectrum as in Figure3, we use Sage builtin plot function list_plot.
The distribution of the classical EPR parameters
To uncover the underlying Lorentzian curve which will be compared to the original spectrum for the R10computation, we need to find the three parameters that determine the latter: the peak-to-peak amplitude App, the linewidth Δ Bppand the resonance field Bres. We define the peaks (positive and negative) as the extrema of the spectrum ordinate values, and the Appand Δ Bppas the difference between the peaks’ ordinates and abscissas, respectively.
The resonance field Bres was defined as the value at which the EPR lineshape crosses the baseline of the spectrum, which corresponds to the zero axis since the spectra are baseline corrected.
The resonance field Bres is thus the mean of the two ordinates lying above and below the baseline respectively:
Knowing the distributions of the classical EPR parameters App, DeltaBpp and Bres, we may check visually their normality thanks to a histogram plot; if normal, we may propagate their standard deviation in the global R10error calculation.
In order to uncover the classical EPR parameters’ distributions, we chose the Monte Carlo error propagation method, cf.: we take the measured spectrum, consider each data point as the mean of a random variable, then draw a new value for each data point given its distribution. For that, we suppose it is a normal distribution, with mean given by the data point and standard deviation given by the square root of the meanf; we thus use the normal distribution generator provided by randn in the pylab library.
With this approach, a large number of cloned data sets is generated, for which App, DeltaBpp and Bres are computed; we then check for their normality by plotting their distribution and, if confirmed, compute their standard deviation for later use when computing the distribution of the R10.
To store the parameters, we need to create the three empty lists listApp, listDeltaBpp and listBres.
We then use the append function to add each calculated set of data to the storage lists.
For the Monte Carlo error propagation, we need to iterate a sufficient number of times in order to produce a significant set of data ; we thus create a global variable that specifies the number of Monte Carlo iterations.
Because we add some noise during the Monte Carlo error propagation, and thus modify the original data, we need to store it before starting the Monte Carlo and retrieve it for each iteration in the Monte Carlo.
Extracting the new R10factor from the spectrum
where Appis the signal amplitude, Δ Bppthe siglnal width and Bresthe resonance field; such an expression supposes that the background signal has been subtracted, i.e. that Amoy=0. We thus compute the theoretical Lorentzian ordinates yL corresponding to the same abscissa as that of the spectrum and the same classical EPR parameters App, DeltaBpp and Bres as that of the spectrum; we store them in a list lorentzOrdinates.
We plot the spectrum and its corresponding Lorentzian curve for visual checking.
Now the R10parameter is computed relatively to the theoretical Lorentzian having the same set of classical EPR parameters, so we could compute the error on the former by propagating analytically the errors of the latter, which we now know thanks to the previous application of the Monte Carlo error propagation method. However, we found it easier and somewhat more in line with the computational approach to use a Monte Carlo approach to propagate the errors. We thus need to repeat the R10computation for a series of values of Bres, DeltaBpp and App to which we add a random error compatible with their distributionsg:
Because we modify the classical parameters during the R10 computation, we need to store the values and retrieve them before and after each iteration of the Monte Carlo:
Results and conclusion
We now have extracted the R10parameter together with its distribution and may proceed to use it, for example to determine the age of organic matter inside rock samples. Given the distribution, we may then check if the mean and standard error do indeed properly characterize the parameter, and eventually assign a probability to a range of ages for the rock sample. The code runs in only a few minutes, if we take into account all the Monte Carlo computations. In, we demonstrate that the data processing as reported here can indeed provide us with a reasonable estimate for the age of rock samples older than 1 billion years.
The complete code
aAnyway, tools exist to go faster when needed, as Cython inside Sage that allows easy variable typing.
bOr maybe the explanation and its code… literate programming is really a whole new approach to writing, thinking and coding.
cThis means that the outputs of some code need not be pasted inside the paper, but can be computed on the fly as needed.
dThe url is http://hpu4science.org.
eThis sample is part of the study where the R10parameter was proposed as a datation method.
fThis corresponds to a normal distribution arising from a Poisson distribution, and is the common practice in EPR because of the underlying counting process when measuring the absorption giving the spectrum. We can indeed check it is so by studying the noise on the flat tails of EPR spectra.
gUsing the Monte Carlo approach would also allow us to draw the values for the classical parameters according to their computed distribution.
All the people who contributed substantially to the work are co-authors.
〈A d d n o i s e t o c l a s s i c a l E P R p a r a m e t e r s 11d〉
〈A d d n o i s e t o d a t a 9e〉
〈A v e r a g e R 10 5g〉
〈B a c k u p c l a s s i c a l E P R p a r a m e t e r s 11b〉
〈B a c k u p d a t a 10c〉
〈C o m p u t e A p p 8a〉
〈C o m p u t e B r e s 8c〉
〈C o m p u t e D e l t a B p p 8b〉
〈C o m p u t e m e a n a n d s t a n d a r d d e v i a t i o n f o r R 10 11g〉
〈C o m p u t e n u m b e r o f d a t a p o i n t s i n t a i l s 6d〉
〈C o m p u t e p o l y n o m i a l o n t a i l s 6g〉
〈C o m p u t e R 10 5f〉
〈C o m p u t e t h e c l a s s i c a l E P R p a r a m e t e r s 8d〉
〈C o m p u t e t h e m o m e n t s o f t h e c l a s s i c a l E P R p a r a m e t e r s 9c〉
〈C r e a t e R 10 l i s t 11e〉
〈C r e a t e t h e l i s t s f o r t h e c l a s s i c a l E P R p a r a m e t e r s 9h〉
〈D e f i n e D A T A d i r e c t o r y 7g〉
〈D e f i n e f i l e n a m e 7d〉
〈D e f i n e g l o b a l v a r i a b l e s 10a〉
〈D e f i n e p o i n t s i n t a i l s 6e〉
〈D e f i n e t h e o r e t i c a l L o z e n t z i a n 10e〉
〈D i s t r i b u t i o n o f t h e c l a s s i c a l E P R p a r a m e t e r s 9g〉
〈E x t r a c t a b s c i s s a s a n d o r d i n a t e s 7e〉
〈F i n d w h e n o r d i n a t e c r o s s e s b a s e l i n e 8f〉
〈F u n c t i o n s t o t r a n s f o r m c o o r d i n a t e s 3〉
〈I m p o r t u s e f u l p y l a b f u n c t i o n s 4b〉
〈L e f t m a t r i x o f X Y L v a l u e s 5d〉
〈L o a d d a t a 7c〉
〈M a t r i x o f X Y L v a l u e s i n n e w c o o r d i n a t e s 5a〉
〈M e a n o f t h e t w o o r d i n a t e s a b o v e a n d b e l o w b a s e l i n e 8g〉
〈P l o t h i s t o g r a m s o f t h e c l a s s i c a l E P R p a r a m e t e r s 9a〉
〈P l o t L o r e n t z i a n 10f〉
〈P l o t s p e c t r u m 7h〉
〈P l o t s p e c t r u m a n d L o r e n t z i a n 10g〉
〈R 10 d i s t r i b u t i o n c o m p u t a t i o n 11a〉
〈R 10 o n t h e l e f t 5h〉
〈R 10 o n t h e r i g h t 5i〉
〈R 10 r e c t a n g u l a r i n t e g r a l 4a〉
〈r 10.p y 12〉
〈R e m o v e b a c k g r o u n d 6c〉
〈R e p e a t a l a r g e n u m b e r o f t i m e s 10b〉
〈R e t r i e v e o r i g i n a l c l a s s i c a l E P R p a r a m e t e r s 11c〉
〈R e t r i e v e o r i g i n a l d a t a 10d〉
〈R e v e r s e m a t r i x 6b〉
〈R i g h t m a t r i x o f X Y L v a l u e s 5e〉
〈S a m e s i d e o f B r e s 5c〉
〈S a v e R 10 l e f t v a l u e 5j〉
〈S a v e R 10 r i g h t v a l u e 5k〉
〈S t o r e R 10 11f〉
〈S t o r e t h e p a r a m e t e r s 9i〉
〈S u b t r a c t p o l y n o m i a l f r o m s p e c t r u m 7a〉
〈T h e o r d i n a t e s b e t w e e n t h e t w o e x t r e m a 8e〉
- Bourbin M, Gourier D, Derenne S, Binet L, Le Du Y, Westall F, Kremer B, Gautret P: Dating carbonaceous matter in archean cherts by electron paramagnetic resonance. Astrobiology. 2013, 13 (2): 151-162. 10.1089/ast.2012.0855.PubMed CentralView ArticlePubMedGoogle Scholar
- Stein WA, et al: Sage Mathematics Software (Version 4.8.0). 2012, The Sage Development Team,, [http://www.sagemath.org]Google Scholar
- Uebersfeld J, Erb E: A new effect of oxygen on the paramagnetic resonance of charcoal. CR Acc Sci. 1956, 243: 363-364.Google Scholar
- Mrozowski S: Esr studies of carbonization and coalification processes part i: carbonaceous compounds. Carbon. 1988, 26: 521-529. 10.1016/0008-6223(88)90151-0.View ArticleGoogle Scholar
- Mrozowski S: Esr studies of carbonization and coalification processes part ii: biological materials. Carbon. 1988, 26: 531-541. 10.1016/0008-6223(88)90152-2.View ArticleGoogle Scholar
- Retcofsky HL, Stark JM, Friedel RA: Electron spin resonance in american coals. Anal Chem. 1968, 40: 1699-1704. 10.1021/ac60267a011.View ArticleGoogle Scholar
- Skrzypczak-Bonduelle A, Binet L, Delpoux O, Vezin H, Derenne S, Robert F, Gourier D: Epr of radicals in primitive organic matter: a tool for the search of biosignatures of the most ancient traces of life. App Magn Reson. 2008, 33: 371-397. 10.1007/s00723-008-0083-y.View ArticleGoogle Scholar
- Binet L, Gourier D, Derenne S, Robert F: Heterogeneous distribution of paramagnetic radicals in insoluble organic matter from the orgueil and murchison meteorites. Geochim Cosmochim Acta. 2002, 66: 4177-4186. 10.1016/S0016-7037(02)00983-3.View ArticleGoogle Scholar
- Binet L, Gourier D, Derenne S, Robert F, Crofini I: Occurence of abundant diradicaloid moieties in the insoluble organic matter from the orgueil and murchis on meteorites: a fingerprint of its extraterrestrial origin?. Geochim Cosmochim Acta. 2004, 68: 881-891. 10.1016/S0016-7037(03)00500-3.View ArticleGoogle Scholar
- Delpoux O, Gourier D, Vezin H, Binet L, Derenne S, Robert F: Biradical character of the d-rich carriers in the insoluble organic matter of carbonaceous chondrites: a relic of the protoplanetary chemistry. Geochim Cosmochim Acta. 2011, 75: 326-336. 10.1016/j.gca.2010.09.033.View ArticleGoogle Scholar
- Gourier D, Robert F, Delpoux O, Binet L, Vezin H, Moissette A, Derenne S: Extreme deuterium enrichment of organic radicals in the orgueil meteorite: revisiting the interstellar interpretation?. Geochim Cosmochim Acta. 2008, 72: 1914-1923. 10.1016/j.gca.2008.01.017.View ArticleGoogle Scholar
- Dickneider TA, Scull S, Whelan JK, Blough NV: Epr study of kerogens from middle valley, northern juan de fuca ridge. Organic Geochem. 1997, 26: 341-352. 10.1016/S0146-6380(97)00010-7.View ArticleGoogle Scholar
- Uebersfeld J, Etienne A, Combrisson J: Paramagnetic resonance, a new property of coal-like materials. Nature. 1954, 174: 614-614.View ArticleGoogle Scholar
- Bencini A, Gatteshi D: Exchange narrowing in lower dimensional systems. EPR of exchange coupled systems. Edited by: Lewin RA. 1990, Berlin: Springer-VerlagGoogle Scholar
- Drabold DA, Fedders PA: Dipolar broadening in magnetically diluted lattices. Phys Rev B. 1988, 37: 3440-3447. 10.1103/PhysRevB.37.3440.View ArticleGoogle Scholar
- Fel’dman EB, Lacelle S: Configurational averaging of dipolar interactions in magnetically diluted spin networks. J Chem Phys. 1996, 104: 2000-2010. 10.1063/1.470956.View ArticleGoogle Scholar
- Kittel C, Abrahams E: Dipolar broadening of magnetic resonance lines in magnetically diluted crystals. Phys Rev. 1953, 90: 238-239. 10.1103/PhysRev.90.238.View ArticleGoogle Scholar
- Van Vleck JH: The dipolar broadening of magnetic resonance lines in crystals. Phys Rev. 1948, 74: 1168-1183. 10.1103/PhysRev.74.1168.View ArticleGoogle Scholar
- Ramsey N: Literate programming simplified. IEEE Software. 1994, 11: 97-105. ISSN 0740-7459. [http://dx.doi.org/10.1109/52.311070]View ArticleGoogle Scholar
- Oliphant TE: Python for scientific computing. Comput Sci & Engnr. 2007, 9 (3): 10-20. [http://doi.ieeecomputersociety.org/10.1109/MCSE.2007.58]View ArticleGoogle Scholar
- Donoho DL: An invitation to reproducible computational research. Biostatistics. 2010, 11 (3): 385-388. 10.1093/biostatistics/kxq028.View ArticlePubMedGoogle Scholar
- Knuth DE: Literate programming. Comput J. 1984, 27: 97-111. 10.1093/comjnl/27.2.97.View ArticleGoogle Scholar
- Schulte E, Davison D, Dye T, Dominik C: A multi-language computing environment for literate programming and reproducible research. J Stat Softw. 2012, 46 (3): 1-24. ISSN 1548-7660. [http://www.jstatsoft.org/v46/i03]View ArticleGoogle Scholar
- Dominik D: The Org-Mode 7 Reference, Manual: Organize Your Life with GNU Emacs. 2010, UK: Network Theory, with contributions by David O’Toole, Bastien Guerry, Philip Rooke, Dan Davison, Eric Schulte, and Thomas DyeGoogle Scholar
- BIPM: “Evaluation of measurement data–supplement 1 to the ‘Guide to the expression of uncertainty in measurement’–propagation of distributions using a Monte Carlo method”. Joint Committee for Guides in Metrology, JCGM. 2008, 101.Google Scholar
This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.