NIRS_Workflow
Getting started
This package aims to provide a workflow for users who want to perform chemical analyses and predict characteristics using the NIRS technique.
The process includes:
-
sample selection - you can upload all your NIRS spectra and it'll help select the samples to analyse chemically.
-
model creation - PLS regression is used to create prediction models with spectra and related chemical analysis. More algorithms had been added like LWPLR from Jchemo (https://github.com/mlesnoff/Jchemo.jl), PLSR with wavelength selection, etc.
-
predictions - the models are used to predict chemical values for unknown samples. We provide information for confidence in the predicted values depending on the samples and the model used.
If one wants to use data stored in a SQL database, the config file is in the config/ folder. The SQL script to create the database is in this same folder.
Installation
This package is written in python. You can clone the repository: git clone https://src.koda.cnrs.fr/CEFE/PACE/nirs_workflow.git
Then install the requirements: pip install -r requirements.txt
(OPTIONNAL) To use Locally weighted PLS Regression as the creation model algorithm, you will need to install Jchemo.jl (https://github.com/mlesnoff/Jchemo.jl), a Julia package.
First, install Julia (https://julialang.org/). Tested versions are 1.10.2 and 1.10.4 (https://julialang.org/downloads/oldreleases/).
Then from the CLI: python
python
'>>> import julia
'>>> julia.install()
'>>> from julia import Pkg
'>>> Pkg.add([Pkg.PackageSpec(name="Jchemo", version="0.4.0"), Pkg.PackageSpec(name="Pandas", version="1.6.1"), Pkg.PackageSpec(name="DataFrames", version="1.6.1"), ])
The Manifest.toml file is also available. Instead of the Pkg.add() previous line, you can duplicate our full Julia environment with:
'>>> Pkg.instantiate()
To check if Jchemo is installed without errors:
'>>> Pkg.status()
You can then run (CLI): streamlit run ./app.py from within your src/ folder.
The app will open in your default browser.
Ensure you run the app in a browser that is compatible with WebGL (Web Graphics Library).
If you encounter an "import pyodbcImportError: libodbc.so.2" error on linux OS, please, install unixodbc with apt install unixodbc from the CLI.
Usage
The web app allows you to process sample selection, model creation and predictions with a simple interface or the advanced one.
Documentation
The doc is generated with mkDoc and Python DocStrings. From CLI, run
mkdocs serve
Authors and acknowledgment
Contributors:
- Nicolas Barthes (CNRS)
- Abderrahim Diane (Montpellier University)
- Mouhcine Maimouni
- Rémy Beugnon
- Alexandre Granier (IRD)
- Vincent Nègre (CNRS)
We would like to thank Matthieu Lesnoff (CIRAD) for discussions and the Jchemo Toolbox.
License
CC BY