powdR: Full Pattern Summation of X-ray Powder Diffraction Data

Benjamin Butler

2018-09-13

powdR is an R implementation of the full pattern summation approach to quantitative mineralogy, which is otherwise available in Excel spreadsheets such as FULLPAT (Chipera and Bish 2002) and ROCKJOCK (Eberl 2003). Implementation in R allows for faster computation than is currently available in FULLPAT or ROCKJOCK, and provides a user-friendly shiny application to help with the often iterative process of mineral quantification.

Full pattern summation

A powerful property of XRPD data is that it can provide quantitative estimates of phase concentrations (mineral and amorphous). Though several methods are available for quantitative mineralogy, full pattern summation is particularly suitable for mineral mixtures containing disordered and amorphous phases. A prime example of such mixtures is soil, where clay minerals represent disordered phases, and organic matter is present as a common X-ray amorphous constituent.

Full pattern summation is based on the principle that an observed pattern is comprised of the sum of signals from pure individual components. When using full pattern summation, a library of pure standards measured on the same instrument as the sample is required. Phases from the library are selected, and their relative contributions optimised until appropriate fit of the observed pattern is achieved (Chipera and Bish 2002). The fit is refined using least squares optimisation of an objective parameter.

Version 0.1.0 of the powdR package currently implements full pattern summation via a standardless approach. The prerequisite of this approach is that all mineral and amorphous phases can be identified within the sample, and that these must sum to 100 weight % (Chipera and Bish 2013; Omotoso et al. 2006).

fps

Full pattern summation in powdR is provided in the fps function. In the following example the full pattern summation process using fps will start with a reference library containing a single quartz phase, and examining the residuals of the fit. If running this vignette yourself, all plots can be made interactive by:

plot(fit, interactive = TRUE)

Making them interactive aids visual interpretation of the fitted patterns, which can otherwise be difficult when using static plots.

library(powdR)

data(minerals)
data(soils)

#Apply summation to the sandstone sample, with quartz as the only mineral
fit <- fps(lib = minerals,
           smpl = soils$sandstone,
           refs = "QUA.1",
           std = "QUA.1",
           align = 0.2)

#plot the data to interpret the fit
plot(fit)
Figure 1: The resulting fit on a sandstone soil when fps is applied using a single quartz reference pattern. The top plot displays the measured and fitted patterns, and the bottom plots displays the residuals.

Figure 1: The resulting fit on a sandstone soil when fps is applied using a single quartz reference pattern. The top plot displays the measured and fitted patterns, and the bottom plots displays the residuals.

In this case, the fitted pattern consistently overestimates the quartz peak intensities compared to the measured pattern, but underestimates the background contribution. This can occur when X-ray amorphous phases are present within the sample. To Account for this, an organic matter phase from the reference library will be added, and the fit recomputed.

#Apply fps to the sandstone sample with quartz (crystalline) and organic matter (amorphous)
fit <- fps(lib = minerals,
           smpl = soils$sandstone,
           refs = c("QUA.1", "ORG"),
           std = "QUA.1",
           align = 0.2)

#plot the data to interpret the fit
plot(fit)
Figure 2: The resulting full pattern fit on a sandstone soil when fps is applied using reference patterns from quartz and organic matter.

Figure 2: The resulting full pattern fit on a sandstone soil when fps is applied using reference patterns from quartz and organic matter.

Now the fit is much improved, highlighting how organic matter is an important component of this pattern. Based on the current residuals, there is a notable peak at 12.3 degrees 2theta, which is often associated with kaolinite. There are also numerous peaks either side of the main quartz peak at 26.6 degrees 2theta, which are often coincident with feldspar minerals. The next fit will therefore add kaolinite, plagioclase and potassium feldspar to the process.

#Apply fps to the sandstone sample, adding kaolinite, feldspar and oligoclase to the process
fit <- fps(lib = minerals,
           smpl = soils$sandstone,
           refs = c("QUA.1",
                    "QUA.2",
                    "KAO",
                    "FEL",
                    "OLI"),
           std = "QUA.1",
           align = 0.2)

#plot the data to interpret the fit
plot(fit)
Figure 3: The resulting full pattern fit on a sandstone soil when fps is applied using reference patterns from quartz (2 different standards), kaolinite, plagioclase, K-feldspar and organic matter

Figure 3: The resulting full pattern fit on a sandstone soil when fps is applied using reference patterns from quartz (2 different standards), kaolinite, plagioclase, K-feldspar and organic matter

When including all these phases, pretty much all peaks are accounted for. Once the user is satisfied that an appropriate fit has been achieved, the mineral concentrations can be extracted and interpreted by looking at two elements of the output from fps:

#returns individual contributions from each reference pattern
fit$phases
#>   phase_id  phase_name  rir phase_percent
#> 1      FEL  K-feldspar 0.75     11.238686
#> 2      KAO   Kaolinite 0.91     11.061620
#> 3      OLI Plagioclase 1.06      7.209315
#> 4    QUA.1      Quartz 4.62     32.907760
#> 5    QUA.2      Quartz 4.34     37.582619

#returns summed contributions from each mineral
fit$phases_summary
#>    phase_name phase_percent
#> 1  K-feldspar     11.238686
#> 2   Kaolinite     11.061620
#> 3 Plagioclase      7.209315
#> 4      Quartz     70.490379

All of the above examples for fps can be further tested using the two other XRPD measurements available in the soils list (soils$limestone and soils$granite), each representing soils with different mineralogies.

References

Chipera, Steve J., and David L. Bish. 2002. “FULLPAT: A full-pattern quantitative analysis program for X-ray powder diffraction using measured and calculated patterns.” Journal of Applied Crystallography 35 (6): 744–49. doi:10.1107/S0021889802017405.

———. 2013. “Fitting Full X-Ray Diffraction Patterns for Quantitative Analysis: A Method for Readily Quantifying Crystalline and Disordered Phases.” Advances in Materials Physics and Chemistry 03 (01): 47–53. doi:10.4236/ampc.2013.31A007.

Eberl, D. D. 2003. “User’s guide to ROCKJOCK - A program for determining quantitative mineralogy from powder X-ray diffraction data.” Boulder, CA: USGS.

Omotoso, Oladipo, Douglas K. McCarty, Stephen Hillier, and Reinhard Kleeberg. 2006. “Some successful approaches to quantitative mineral analysis as revealed by the 3rd reynolds cup contest.” Clays and Clay Minerals 54 (6): 748–60. doi:10.1346/CCMN.2006.0540609.