alkahest

Pre-Processing XY Data from Experimental Methods - :exclamation: This is a read-only mirror from https://codeberg.org/tesselle/alkahest

https://github.com/tesselle/alkahest

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 10 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    1 of 1 committers (100.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.0%) to scientific vocabulary

Keywords

archaeometry r-package spectroscopy
Last synced: 4 months ago · JSON representation ·

Repository

Pre-Processing XY Data from Experimental Methods - :exclamation: This is a read-only mirror from https://codeberg.org/tesselle/alkahest

Basic Info
Statistics
  • Stars: 5
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 4
Topics
archaeometry r-package spectroscopy
Created over 3 years ago · Last pushed 5 months ago
Metadata Files
Readme Changelog License Citation Codemeta

README.Rmd

---
output: github_document
bibliography: vignettes/bibliography.bib
nocite: '@*'
---



```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/README-",
  out.width = NULL
)
Sys.setenv(LANGUAGE = "en") # Force locale
```

# alkahest 


[![status-badge](https://ci.codeberg.org/api/badges/14686/status.svg)](https://ci.codeberg.org/repos/14686){.pkgdown-devel}
[![Code coverage](https://packages.tesselle.org/alkahest/coverage/badge.svg)](https://packages.tesselle.org/alkahest/coverage/){.pkgdown-devel}
[![Dependencies](https://tinyverse.netlify.app/badge/alkahest)](https://cran.r-project.org/package=alkahest){.pkgdown-devel}

[![r-universe](https://tesselle.r-universe.dev/badges/alkahest)](https://tesselle.r-universe.dev){.pkgdown-devel}
[![CRAN Version](https://www.r-pkg.org/badges/version/alkahest)](https://cran.r-project.org/package=alkahest){.pkgdown-release}
[![CRAN checks](https://badges.cranchecks.info/worst/alkahest.svg)](https://cran.r-project.org/web/checks/check_results_alkahest.html){.pkgdown-release}
[![CRAN Downloads](https://cranlogs.r-pkg.org/badges/alkahest)](https://cran.r-project.org/package=alkahest){.pkgdown-release}

[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)

[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7081524.svg)](https://doi.org/10.5281/zenodo.7081524)


## Overview

**alkahest** is a lightweight, dependency-free toolbox for pre-processing XY data from experimental methods (i.e. any signal that can be measured along a continuous variable). It provides methods for baseline estimation and correction, smoothing, normalization, integration and peaks detection.

* Baseline estimation methods: Linear, Polynomial [@lieber2003], Asymmetric Least Squares [@eilers2005], Rolling Ball [@kneen1996], Rubberband, SNIP [@morhac1997; @morhac2008; @ryan1988], 4S Peak Filling [@liland2015].
* Smoothing methods: Rectangular, Triangular, Loess, Savitzky-Golay Filter [@gorry1990; @savitzky1964], Whittaker [@eilers2003], Penalized Likelihood [@derooi2014]

---

```{r citation, echo=FALSE, comment='', results='asis'}
cite <- utils::citation("alkahest")
print(cite, bibtex = FALSE)
```

## Installation

You can install the released version of **alkahest** from [CRAN](https://CRAN.R-project.org) with:

```{r cran-installation, eval=FALSE}
install.packages("alkahest")
```

And the development version from [Codeberg](https://codeberg.org/) with:

```{r gh-installation, eval=FALSE}
# install.packages("remotes")
remotes::install_git("https://codeberg.org/tesselle/alkahest")
```

## Usage

```{r packages}
## Load the package
library(alkahest)
```

**alkahest** expects the input data to be in the simplest form (a two-column matrix or data frame, a two-element list or two numeric vectors).

```{r baseline}
## X-ray diffraction
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")
```

```{r peaks}
## Correct baseline
XRD <- signal_drift(XRD, lag = baseline, subtract = TRUE)

## Find peaks
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")
```

```{r smooth, fig.width=5, fig.height=5, out.width='50%', fig.show='hold'}
## Simulate data
set.seed(12345)
x <- seq(-4, 4, length = 100)
y <- dnorm(x)
z <- y + rnorm(100, mean = 0, sd = 0.01) # Add some noise

## Plot raw data
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")
```

## Contributing

Please note that the **alkahest** project is released with a [Contributor Code of Conduct](https://www.tesselle.org/conduct.html). By contributing to this project, you agree to abide by its terms.

## References

```{r metadata, include=FALSE}
## Update codemeta.json
codemetar::write_codemeta(verbose = FALSE)

## Update CITATION.cff
cff_keys <- list(
  identifiers = list(
    list(description = "The concept DOI.",
         type = "doi",
         value = "10.5281/zenodo.7081524"),
    list(description = "The versioned DOI for version 1.0.0.",
         type = "doi",
         value = "10.5281/zenodo.7081525"),
    list(description = "The versioned DOI for version 1.1.0.",
         type = "doi",
         value = "10.5281/zenodo.7947723"),
    list(description = "The versioned DOI for version 1.1.1.",
         type = "doi",
         value = "10.5281/zenodo.8031801"),
    list(description = "The versioned DOI for version 1.2.0.",
         type = "doi",
         value = "10.5281/zenodo.12941057"),
    list(description = "The versioned DOI for version 1.3.0.",
         type = "doi",
         value = "10.5281/zenodo.14927537"),
    list(description = "The CRAN DOI",
         type = "doi",
         value = "10.32614/cran.package.alkahest")
  )
)
cff <- cffr::cff_create("DESCRIPTION", keys = cff_keys)
if (cffr::cff_validate(cff)) cffr::cff_write(cff, outfile = "CITATION.cff")
```

Owner

  • Name: tesselle
  • Login: tesselle
  • Kind: organization
  • Location: France

A collection of R packages for archaeological research and teaching

Citation (CITATION.cff)

# --------------------------------------------
# CITATION file created with {cffr} R package
# See also: https://docs.ropensci.org/cffr/
# --------------------------------------------
 
cff-version: 1.2.0
message: 'To cite package "alkahest" in publications use:'
type: software
license: GPL-3.0-or-later
title: 'alkahest: Pre-Processing XY Data from Experimental Methods'
version: 1.3.0
doi: 10.5281/zenodo.7081524
identifiers:
- description: The concept DOI.
  type: doi
  value: 10.5281/zenodo.7081524
- description: The versioned DOI for version 1.0.0.
  type: doi
  value: 10.5281/zenodo.7081525
- description: The versioned DOI for version 1.1.0.
  type: doi
  value: 10.5281/zenodo.7947723
- description: The versioned DOI for version 1.1.1.
  type: doi
  value: 10.5281/zenodo.8031801
- description: The versioned DOI for version 1.2.0.
  type: doi
  value: 10.5281/zenodo.12941057
- description: The versioned DOI for version 1.3.0.
  type: doi
  value: 10.5281/zenodo.14927537
- description: The CRAN DOI
  type: doi
  value: 10.32614/cran.package.alkahest
abstract: A lightweight, dependency-free toolbox for pre-processing XY data from experimental
  methods (i.e. any signal that can be measured along a continuous variable). This
  package provides methods for baseline estimation and correction, smoothing, normalization,
  integration and peaks detection. Baseline correction methods includes polynomial
  fitting as described in Lieber and Mahadevan-Jansen (2003) <https://doi.org/10.1366/000370203322554518>,
  Rolling Ball algorithm after Kneen and Annegarn (1996) <https://doi.org/10.1016/0168-583X(95)00908-6>,
  SNIP algorithm after Ryan et al. (1988) <https://doi.org/10.1016/0168-583X(88)90063-8>,
  4S Peak Filling after Liland (2015) <https://doi.org/10.1016/j.mex.2015.02.009>
  and more.
authors:
- family-names: Frerebeau
  given-names: Nicolas
  email: nicolas.frerebeau@u-bordeaux-montaigne.fr
  orcid: https://orcid.org/0000-0001-5759-4944
preferred-citation:
  type: manual
  title: 'alkahest: Pre-Processing XY Data from Experimental Methods'
  authors:
  - family-names: Frerebeau
    given-names: Nicolas
    email: nicolas.frerebeau@u-bordeaux-montaigne.fr
    orcid: https://orcid.org/0000-0001-5759-4944
  year: '2025'
  institution:
    name: Université Bordeaux Montaigne
    address: Pessac, France
  notes: R package version 1.3.0
  url: https://packages.tesselle.org/alkahest/
  doi: 10.5281/zenodo.7081524
repository: https://CRAN.R-project.org/package=alkahest
repository-code: https://codeberg.org/tesselle/alkahest
url: https://packages.tesselle.org/alkahest/
contact:
- family-names: Frerebeau
  given-names: Nicolas
  email: nicolas.frerebeau@u-bordeaux-montaigne.fr
  orcid: https://orcid.org/0000-0001-5759-4944
keywords:
- spectroscopy
- archaeometry
- r-package
references:
- type: software
  title: 'R: A Language and Environment for Statistical Computing'
  notes: Depends
  url: https://www.R-project.org/
  authors:
  - name: R Core Team
  institution:
    name: R Foundation for Statistical Computing
    address: Vienna, Austria
  year: '2025'
  version: '>= 3.5.0'
- type: software
  title: grDevices
  abstract: 'R: A Language and Environment for Statistical Computing'
  notes: Imports
  authors:
  - name: R Core Team
  institution:
    name: R Foundation for Statistical Computing
    address: Vienna, Austria
  year: '2025'
- type: software
  title: methods
  abstract: 'R: A Language and Environment for Statistical Computing'
  notes: Imports
  authors:
  - name: R Core Team
  institution:
    name: R Foundation for Statistical Computing
    address: Vienna, Austria
  year: '2025'
- type: software
  title: stats
  abstract: 'R: A Language and Environment for Statistical Computing'
  notes: Imports
  authors:
  - name: R Core Team
  institution:
    name: R Foundation for Statistical Computing
    address: Vienna, Austria
  year: '2025'
- type: software
  title: utils
  abstract: 'R: A Language and Environment for Statistical Computing'
  notes: Imports
  authors:
  - name: R Core Team
  institution:
    name: R Foundation for Statistical Computing
    address: Vienna, Austria
  year: '2025'
- type: software
  title: knitr
  abstract: 'knitr: A General-Purpose Package for Dynamic Report Generation in R'
  notes: Suggests
  url: https://yihui.org/knitr/
  repository: https://CRAN.R-project.org/package=knitr
  authors:
  - family-names: Xie
    given-names: Yihui
    email: xie@yihui.name
    orcid: https://orcid.org/0000-0003-0645-5666
  year: '2025'
  doi: 10.32614/CRAN.package.knitr
- type: software
  title: markdown
  abstract: 'markdown: Render Markdown with ''commonmark'''
  notes: Suggests
  url: https://github.com/rstudio/markdown
  repository: https://CRAN.R-project.org/package=markdown
  authors:
  - family-names: Xie
    given-names: Yihui
    email: xie@yihui.name
    orcid: https://orcid.org/0000-0003-0645-5666
  - family-names: Allaire
    given-names: JJ
  - family-names: Horner
    given-names: Jeffrey
  year: '2025'
  doi: 10.32614/CRAN.package.markdown
- type: software
  title: Matrix
  abstract: 'Matrix: Sparse and Dense Matrix Classes and Methods'
  notes: Suggests
  url: https://Matrix.R-forge.R-project.org
  repository: https://CRAN.R-project.org/package=Matrix
  authors:
  - family-names: Bates
    given-names: Douglas
    orcid: https://orcid.org/0000-0001-8316-9503
  - family-names: Maechler
    given-names: Martin
    email: mmaechler+Matrix@gmail.com
    orcid: https://orcid.org/0000-0002-8685-9910
  - family-names: Jagan
    given-names: Mikael
    orcid: https://orcid.org/0000-0002-3542-2938
  year: '2025'
  doi: 10.32614/CRAN.package.Matrix
- type: software
  title: tinytest
  abstract: 'tinytest: Lightweight and Feature Complete Unit Testing Framework'
  notes: Suggests
  url: https://github.com/markvanderloo/tinytest
  repository: https://CRAN.R-project.org/package=tinytest
  authors:
  - family-names: Loo
    given-names: Mark
    name-particle: van der
    email: mark.vanderloo@gmail.com
    orcid: https://orcid.org/0000-0002-9807-4686
  year: '2025'
  doi: 10.32614/CRAN.package.tinytest

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "identifier": "alkahest",
  "description": "A lightweight, dependency-free toolbox for pre-processing XY data from experimental methods (i.e. any signal that can be measured along a continuous variable). This package provides methods for baseline estimation and correction, smoothing, normalization, integration and peaks detection. Baseline correction methods includes polynomial fitting as described in Lieber and Mahadevan-Jansen (2003) <doi:10.1366/000370203322554518>, Rolling Ball algorithm after Kneen and Annegarn (1996) <doi:10.1016/0168-583X(95)00908-6>, SNIP algorithm after Ryan et al. (1988) <doi:10.1016/0168-583X(88)90063-8>, 4S Peak Filling after Liland (2015) <doi:10.1016/j.mex.2015.02.009> and more.",
  "name": "alkahest: Pre-Processing XY Data from Experimental Methods",
  "relatedLink": [
    "https://packages.tesselle.org/alkahest/",
    "https://CRAN.R-project.org/package=alkahest"
  ],
  "codeRepository": "https://codeberg.org/tesselle/alkahest",
  "issueTracker": "https://codeberg.org/tesselle/alkahest/issues",
  "license": "https://spdx.org/licenses/GPL-3.0",
  "version": "1.3.0",
  "programmingLanguage": {
    "@type": "ComputerLanguage",
    "name": "R",
    "url": "https://r-project.org"
  },
  "runtimePlatform": "R Under development (unstable) (2025-02-23 r87804)",
  "provider": {
    "@id": "https://cran.r-project.org",
    "@type": "Organization",
    "name": "Comprehensive R Archive Network (CRAN)",
    "url": "https://cran.r-project.org"
  },
  "author": [
    {
      "@type": "Person",
      "givenName": "Nicolas",
      "familyName": "Frerebeau",
      "email": "nicolas.frerebeau@u-bordeaux-montaigne.fr",
      "@id": "https://orcid.org/0000-0001-5759-4944"
    }
  ],
  "funder": [
    {
      "@type": "Organization",
      "name": "Universit Bordeaux Montaigne"
    },
    {
      "@type": "Organization",
      "name": "CNRS"
    }
  ],
  "maintainer": [
    {
      "@type": "Person",
      "givenName": "Nicolas",
      "familyName": "Frerebeau",
      "email": "nicolas.frerebeau@u-bordeaux-montaigne.fr",
      "@id": "https://orcid.org/0000-0001-5759-4944"
    }
  ],
  "softwareSuggestions": [
    {
      "@type": "SoftwareApplication",
      "identifier": "knitr",
      "name": "knitr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=knitr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "markdown",
      "name": "markdown",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=markdown"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "Matrix",
      "name": "Matrix",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=Matrix"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "tinytest",
      "name": "tinytest",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tinytest"
    }
  ],
  "softwareRequirements": {
    "1": {
      "@type": "SoftwareApplication",
      "identifier": "R",
      "name": "R",
      "version": ">= 3.5.0"
    },
    "2": {
      "@type": "SoftwareApplication",
      "identifier": "grDevices",
      "name": "grDevices"
    },
    "3": {
      "@type": "SoftwareApplication",
      "identifier": "methods",
      "name": "methods"
    },
    "4": {
      "@type": "SoftwareApplication",
      "identifier": "stats",
      "name": "stats"
    },
    "5": {
      "@type": "SoftwareApplication",
      "identifier": "utils",
      "name": "utils"
    },
    "SystemRequirements": null
  },
  "isPartOf": "https://www.tesselle.org",
  "keywords": [
    "spectroscopy",
    "archaeometry",
    "r-package"
  ],
  "fileSize": "936.987KB",
  "citation": [
    {
      "@type": "SoftwareSourceCode",
      "datePublished": "2025",
      "author": [
        {
          "@type": "Person",
          "givenName": "Nicolas",
          "familyName": "Frerebeau"
        }
      ],
      "name": "{alkahest: Pre-Processing XY Data from Experimental Methods}",
      "identifier": "10.5281/zenodo.7081524",
      "url": "https://packages.tesselle.org/alkahest/",
      "description": "R package version 1.3.0",
      "@id": "https://doi.org/10.5281/zenodo.7081524",
      "sameAs": "https://doi.org/10.5281/zenodo.7081524"
    }
  ],
  "developmentStatus": "https://www.repostatus.org/#active"
}

GitHub Events

Total
  • Push event: 7
  • Create event: 1
Last Year
  • Push event: 7
  • Create event: 1

Committers

Last synced: almost 2 years ago

All Time
  • Total Commits: 94
  • Total Committers: 1
  • Avg Commits per committer: 94.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 28
  • Committers: 1
  • Avg Commits per committer: 28.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
nfrerebeau n****u@u****r 94
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 12 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

DESCRIPTION cran
  • R >= 3.5.0 depends
  • grDevices * imports
  • methods * imports
  • stats * imports
  • utils * imports
  • Matrix * suggests
  • knitr * suggests
  • rmarkdown * suggests
  • tinytest * suggests