Skip to content

Python code to identify and calculate decomposition of materials using Raman spectroscopy

License

Notifications You must be signed in to change notification settings

erasmuss/raman-spectra-decomp-analysis

 
 

Repository files navigation

raman-spectra-decomp-analysis

Code to calculate decomposition of materials using Raman spectroscopy. Binder

This is the GitHub Repo for work completed for NSF DIRECT Data Accelerator Fellowship 2020

Fellowship PI: Jim Pfaendtner; Fellowship Recipient: Elizabeth Rasmussen

Overall Project Objective

This project identifies, and calculates decomposition in a Raman spectra to output rate data. Advantages to using this method are:

  1. FULLY Open source, no part of the project is dependent on a paid service
  2. AUTOMATED process, analysis is automated leading to fast results
  3. VERIFIABLE, user is made aware of how confident they can be in the results via a statistical software stack

Assumptions and Project Scope

  1. Storing data library that is beyond the decomposition products of formic acid (hydrogen, water, carbon dioxide, carbon monoxide) are not included as other components are beyond the scope of the project at this time.
  • Assumed that the user is trying to analyze the decomposition products of formic acid, or a mixture that consists only of: Formic Acid, Hydrogen, Water, Carbon dioxide, Carbon monoxide.
  1. This project will not be predictive - that is, it will require the user to specifically input what potential compounds will be present in the spectra to be analyzed. This list does not have to be exhaustive; however, the more inclusive the list, the better the fitting and predicting results will be.

Project Breakdown

The project can be thought of as broken down into 3 steps:

  1. Data Wrangling
  2. Peak fitting and identification
  3. Statistical analysis for peak fits

These sections have their own wiki documents and filled juypter notebooks with more detail included throught, see those for more detail on the individual steps.

User Flow and Example of Using Raman Noodles

A user will be able to follow the steps to apply Raman-Noodles to YOUR Formic Acid data set. An example of using the software can be seen in the Example Use Case Wiki Page

Testing of Raman Noodles and Travis-CI

In order to have manageable code we are using Travis' Open Source continuious itegration testing. One thing to note is that on March 1, 2018 Travis-CI switched their model for open source software, the press release about this can be read here

So we do have our team repo viewable on travis-ci.com BUT it will ultimately re-direct you to the old platform for open source software on travis-ci.org.

There is a way to merge the travis-ci.org (open source repos only) to travis-ci.com (now private repos and (closed beta) open source repos) as can be seen by following this link but at this time our team has decided to not join the closed beta as the current (old) method of the dashboard being located on travis-ci.org works just fine.

Future Work

Next steps would include automatic baseline subtraction of spectra to decrease pre-processing time, molar formation calculations to predict reaction pathways, and increased robustness of machine learning for component selection including unsupervised methods.

Conclusion

In conclusion this is a platform code base for researchers to visualize and analyze their Raman spectra in a fast, automated manor - reducing post-processing time by days and enabling future work to continue on a solid base of open source tools.

  • This software has passed tests to sucessfully identify and analyze the identification of components in mixture Raman data.

  • This work sets up a free and user friendly platform for researchers to be able to analyze their own Raman Spectra.

Acknowledgements

  • Dave Beck and Jim Pfaendtner
  • Data sets from publicly available from Mendeley Data, “Raman Spectra of Formic Acid Gasification Products in Subcritical and Supercritical Water”
  • Only open source packages were used in this work.

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 97.9%
  • Python 2.1%