alkahest

Traitement du signal

alkahest est un package R qui constitue une boîte à outils pour le prétraitement des données issues de méthodes expérimentales (c’est-à-dire tout signal pouvant être mesuré le long d’une variable continue). Ce package fournit des méthodes d’estimation et de correction de la ligne de base, de lissage, de normalisation, etc.

  • Méthodes d’estimation de ligne de base : Linear, Polynomial (Lieber and Mahadevan-Jansen 2003), Asymmetric Least Squares (Eilers and Boelens 2005), Rolling Ball (Kneen and Annegarn 1996), Rubberband, SNIP (Morháč et al. 1997 ; Morháč and Matoušek 2008 ; Ryan et al. 1988), 4S Peak Filling (Liland 2015).
  • Méthodes de lissage : Rectangular, Triangular, Loess, Savitzky-Golay Filter (Gorry 1990 ; Savitzky and Golay 1964), Whittaker (Eilers 2003), Penalized Likelihood (De Rooi et al. 2014)

Ce package fait partie du projet tesselle.

Installation

Vous pouvez installer la dernière version depuis le CRAN avec :

install.packages("alkahest")

Et la version de développement depuis Codeberg avec :

# install.packages("remotes")
remotes::install_git("https://codeberg.org/tesselle/alkahest")

Utilisation

## Charger le package
library(alkahest)

Les données d’entrée doivent être sous la forme la plus simple possible (une matrice à deux colonnes ou un cadre de données, une liste à deux éléments ou deux vecteurs numériques).

## Diffraction de rayons X
data("XRD")

## 4S Peak Filling baseline
baseline <- baseline_peakfilling(XRD, n = 10, m = 5, by = 10, sparse = TRUE)

plot(XRD, type = "l", xlab = expression(2*theta), ylab = "Count")
lines(baseline, type = "l", col = "red")
## Soustraction de la ligne de base
XRD <- signal_drift(XRD, lag = baseline, subtract = TRUE)

## Détection des pics
peaks <- peaks_find(XRD, SNR = 3, m = 11)

plot(XRD, type = "l", xlab = expression(2*theta), ylab = "Count")
lines(peaks, type = "p", pch = 16, col = "red")
## Simuler des données
set.seed(12345)
x <- seq(-4, 4, length = 100)
y <- dnorm(x)
z <- y + rnorm(100, mean = 0, sd = 0.01) # Add some noise

## Visualiser les données
plot(x, z, type = "l", xlab = "", ylab = "", main = "Raw data")
lines(x, y, type = "l", lty = 2, col = "red")
## Savitzky-Golay filter
smooth <- smooth_savitzky(x, z, m = 21, p = 2)
plot(smooth, type = "l", xlab = "", ylab = "", main = "Savitzky–Golay filter")
lines(x, y, type = "l", lty = 2, col = "red")
Voir en ligne : Documentation.

Publié le 15 septembre 2022 , mis à jour le 12 janvier 2026.