Skip to content
Snippets Groups Projects
user avatar
Nicolas Barthes authored
fafffe59
History

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