Package 'PlotFTIR'

Title: Plot FTIR Spectra
Description: The goal of 'PlotFTIR' is to easily and quickly kick-start the production of journal-quality Fourier Transform Infra-Red (FTIR) spectral plots in R using 'ggplot2'. The produced plots can be published directly or further modified by 'ggplot2' functions. L'objectif de 'PlotFTIR' est de démarrer facilement et rapidement la production des tracés spectraux de spectroscopie infrarouge à transformée de Fourier (IRTF) de qualité journal dans R à l'aide de 'ggplot2'. Les tracés produits peuvent être publiés directement ou modifiés davantage par les fonctions 'ggplot2'.
Authors: Philip Bulsink [aut, cre] , Ulrich Makanda [trl] (Translated documentation to French/Traduire la documentation en français), His Majesty the King in Right of Canada, as represented by the Minister of Natural Resources [cph]
Maintainer: Philip Bulsink <[email protected]>
License: GPL (>= 3)
Version: 1.0.0.9000
Built: 2024-11-18 18:37:50 UTC
Source: https://github.com/nrcan/plotftir

Help Index


Add or Subtract Scalar Value

Description

Add or subtract a constant (scalar) value to each data point in a FTIR spectra. Shifts the plot up or down on the y axis by the specified amount without any other change.

Ajoute ou soustrait une valeur constante (scalaire) à chaque point de données d'un spectre IRTF. Décale le tracé vers le haut ou vers le bas sur l'axe des y de la valeur spécifiée sans aucune autre modification.

Usage

add_scalar_value(ftir, value, sample_ids = NA)

subtract_scalar_value(ftir, value, sample_ids = NA)

Arguments

ftir

A data.frame of FTIR spectral data including spectra to be shifted.

Un data.frame de données spectrales IRTF comprenant les spectres à décalés.

value

The numeric value to add or subtract.

Le valeur numerique d'ajute ou soustrait.

sample_ids

A vector of sample IDs to be shifted. All sample IDs must be present in the 'ftir' data.frame. If modifying all spectra, provide NA or NULL.

Un vecteur d'identifiants d'échantillons dont la moyenne doit être décalée. Tous les identifiants des échantillons doivent être présents dans le data.frame 'ftir'. Si modifiez tous les spectres, indiquez NA ou NULL.

Value

A data.frame containing the adjusted FTIR spectra.

Un data.frame contenant les spectres IRTF ajustee.

Examples

# Add 0.1 to each spectra in biodiesel
add_scalar_value(biodiesel, 0.1)

# Subtract 0.05 from biodiesel_0 and biodiesel_0_25
subtract_scalar_value(biodiesel, 0.05, sample_ids = c("biodiesel_0", "biodiesel_0_25"))

Add a Marker at a Wavenumber

Description

Add a vertical line marker, at a given wavenumber, to an FTIR plot, and label at the top of the plot with a provided text (or by default the wavenumber of the marker). This is useful for noting important wavenumbers.

This function can be called repeatedly. Note that older labels will be covered by newer labels if they overlap.

Ajoutez un marqueur de ligne verticale, à un nombre d'ondes donné, à un tracé FTIR, et l'étiquette en haut du tracé avec un texte fourni (ou par défaut le nombre d'ondes du marqueur). Cette fonction est utile pour noter les nombres d'ondes importants. Cette fonction peut être appelée plusieurs fois.

Notez que les vieux labels seront couverts par les nouveaux s'ils se chevauchent.

Usage

add_wavenumber_marker(
  ftir_spectra_plot,
  wavenumber,
  text = NULL,
  line_aesthetics = NULL,
  label_aesthetics = NULL
)

Arguments

ftir_spectra_plot

A plot generated by plot_ftir() or plot_ftir_stacked().

Un tracé généré par plot_ftir() ou plot_ftir_stacked().

wavenumber

the wavenumber at which the marker should be placed.

le nombre d'ondes auquel le marqueur doit être placé.

text

The text of the label over the marker (optional). If no text is provided, the label will show the wavenumber (rounded to the nearest whole number).

Le texte de l'étiquette au-dessus du marqueur (facultatif). Si aucun texte n'est fourni, l'étiquette indiquera le nombre d'ondes (arrondi au nombre entier le plus proche).

line_aesthetics

A named list of aesthetics to pass to ggplot for creating the vertical line. See ⁠[ggplot2::geom_path()]⁠'s aesthetics section for more info. Specifically, alpha, color, linetype and linewidth are permitted. Positioning aesthetics will be removed.

Une list nommée d'esthétiques à transmettre à ggplot pour créer la ligne verticale. Voir la section esthétique de ⁠[ggplot2::geom_path()]⁠ pour plus d'informations. Plus précisément, alpha, color, linetype et 'linewidth“ sont autorisés. Les aspects esthétiques du positionnement seront supprimés.

label_aesthetics

A named list of aesthetics to pass to ggplot for creating the label. See ⁠[ggplot2::geom_text()]⁠'s aesthetics section for more info. Specifically, alpha, color, family, fill, fontface and sizeare permitted. Positioning aesthetics will be removed.

Une list nommée d'esthétiques à transmettre à ggplot pour créer l'étiquette. Voir la section esthétique de ⁠[ggplot2::geom_text()]⁠ pour plus d'informations. Plus précisément, alpha, color, family, fill, fontface et size sont autorisés. Les aspects esthétiques du positionnement seront supprimés.

Value

the FTIR plot as a ggplot2 object, with a marker added at the specified wavenumber.

le tracé IRTF en tant qu'objet ggplot2, avec un marqueur ajouté au nombre d'ondes spécifié.

See Also

See vignette("ggplot2-specs") for more information on setting aesthetics.

Voir vignette("ggplot2-specs") pour plus d'informations sur la définition de l'esthétique.

Examples

if (requireNamespace("ggplot2", quietly = TRUE)) {
  # Generate a plot
  biodiesel_plot <- plot_ftir(biodiesel)

  # Add a marker at 1742 cm^-1 for the carbonyl C=O Stretch
  p <- add_wavenumber_marker(biodiesel_plot, 1742, text = "C=O Stretch")
  p

  # Add a second marker and use a dashed line for the C-H aliphatic stretch
  add_wavenumber_marker(p, 2920,
    text = "C-H Stretch",
    line_aesthetics = list("linetype" = "dashed")
  )
}

Average FTIR Spectra

Description

Calculates an average of two or more spectra.

Calcule la moyenne de deux spectres ou plus.

Usage

average_spectra(ftir, sample_ids = NA, average_id = "averaged_spectra")

Arguments

ftir

A data.frame of FTIR spectral data including spectra to be converted.

Un data.frame de données spectrales IRTF comprenant les spectres à convertir.

sample_ids

A vector of sample IDs to be averaged together. All sample IDs must be present in the ftir data.frame. If averaging all spectra, provide NA or NULL.

Un vecteur d'identifiants d'échantillons dont la moyenne doit être calculée.. Tous les identifiants des échantillons doivent être présents dans le data.frame ftir. Si la moyenne est calculée pour tous les spectres, indiquez NA ou NULL.

average_id

The name to be used as sample_id for the averaged spectra.

Le nom à utiliser en tant que sample_id pour les spectres moyennés.

Value

A data.frame containing the averaged FTIR spectra, with sample_id corresponding to the provided average_id.

Un data.frame contenant les spectres IRTF moyennés, avec sample_id correspondant à l'identifiant average_id fourni.

Examples

# Calculate the average of biodiesel B5 spectra and the unknown spectra

average_spectra(biodiesel, c("biodiesel_5_0", "biodiesel_B5", "diesel_unknown"))

FTIR Bio-diesel data

Description

This dataset holds example data from an 5-Bounce ZnSe Attenuated Total Reflectance (ATR) FTIR instrument collected for biodiesel analysis. The biodiesel samples were purchased calibration standards or available on the Canadian commercial market in 2024.

The samples included in this data set are: * 'biodiesel_0' A calibration sample with 0.0 * 'biodiesel_0_25' A calibration sample with 0.25 * 'biodiesel_0_50' A calibration sample with 0.50 * 'biodiesel_1_0' A calibration sample with 1.0 * 'biodiesel_2_5' A calibration sample with 2.5 * 'biodiesel_5_0' A calibration sample with 5.0 * 'biodiesel_7_5' A calibration sample with 7.5 * 'biodiesel_10_0' A calibration sample with 10.0 * 'biodiesel_B0_5' A commercially available sample with approximately 0.5 * 'biodiesel_B5' A commercially available sample with approximately 5.0 * 'diesel_unknown' A commercially available sample with unknown biodiesel content.

Ce donnée contient des exemples de données provenant d'un instrument IRTF à réflectance totale atténuée (RTA) ZnSe à 5 rebonds collectées pour l'analyse du biodiesel. Les échantillons de biodiesel étaient des étalons d'étalonnage achetés ou disponibles sur le marché commercial canadien en 2024.

Les échantillons inclus dans cet ensemble de données sont : * ‘biodiesel_0' Un échantillon d’étalonnage avec 0,0 * ‘biodiesel_0_25' Un échantillon d’étalonnage avec 0,25 * ‘biodiesel_0_50' Un échantillon d’étalonnage avec 0,50 * ‘biodiesel_1_0' Un échantillon d’étalonnage avec 1,0 * ‘biodiesel_2_5' Un échantillon d’étalonnage avec 2,5 * ‘biodiesel_5_0' Un échantillon d’étalonnage avec 5,0 * ‘biodiesel_7_5' Un échantillon d’étalonnage avec 7,5 * ‘biodiesel_10_0' Un échantillon d’étalonnage avec 10,0 * 'biodiesel_B0_5' Un échantillon disponible dans le commerce contenant environ 0,5 * 'biodiesel_B5' Un échantillon disponible dans le commerce contenant environ 5,0 * 'diesel_unknown' Un échantillon disponible dans le commerce avec une teneur en biodiesel inconnue.

Usage

biodiesel

Format

The data is in a long format data.frame, ready for use, and with the following variables:

* 'wavenumber' wavenumber (x axis) value for each point. In units of wavenumbers (cm^-1). * 'absorbance' the absorbance of the sample at each specified wavenumber. * 'sample_id' the sample identity of the various included spectra.

Les données sont dans un format long data.frame, prêt à l'emploi, et avec les variables suivantes:

* ‘wavenmber' valeur du nombre d’onde (axe x) pour chaque point. En unités de nombres d'ondes (cm^-1). * ‘absorbance' l’absorbance de l'échantillon à chaque nombre d'onde spécifié. * ‘sample_id' identité d’échantillon des différents spectres inclus.


'ChemoSec' to 'PlotFTIR' conversions

Description

Converts 'ChemoSpec' data to that ready to use by 'PlotFTIR'.

Convertit les données 'ChemoSpec' en données prêtes à être utilisées par 'PlotFTIR'.

Usage

chemospec_to_plotftir(csdata)

Arguments

csdata

'ChemoSpec' data to convert to 'PlotFTIR.' Données 'ChemoSpec' a convertir à 'PlotFTIR'.

Value

a data.frame compatible with 'PlotFTIR' functions

un data.frame compatible avec les fonctions 'PlotFTIR'.

See Also

[ChemoSpec::files2SpectraObject()] for import requirements, and [chemospec_to_plotftir()] for converting to 'PlotFTIR' format.

[ChemoSpec::files2SpectraObject()] pour les conditions d'importation, et [chemospec_to_plotftir()] pour la conversion au format 'PlotFTIR'.

Examples

if (requireNamespace("ChemoSpec", quietly = TRUE)) {
  # convert `chemospec` to PlotFTIR data
  data("SrE.IR", package = "ChemoSpec", envir = environment())
  chemospec_to_plotftir(SrE.IR)
}

Compress Low-Energy Region

Description

Compress the lower energy region of a FTIR plot (on the x axis) to leave more space for the higher-energy region. This is commonly done for wavenumbers higher than 2000 cm^-1 as the more complex spectra at higher energy (lower wavenumber) is harder to see clearly.

Compressez la région de basse énergie d'un tracé d'IRTF (sur l'axe des x) pour laisser plus d'espace à la région de haute énergie. Cette opération généralement réalisée pour les nombres d'onde supérieurs à 2000 cm^-1, car les spectres plus complexes à houte énergie (nombre d'onde plus faible) sont plus difficiles à voir clairement.

Usage

compress_low_energy(ftir_spectra_plot, cutoff = 2000, compression_ratio = 2)

Arguments

ftir_spectra_plot

A plot generated by [plot_ftir()] or [plot_ftir_stacked()].

Un tracé généré par [plot_ftir()] ou [plot_ftir_stacked()].

cutoff

The wavenumber whereat those at lower energy will be compressed, but those above will be shown normally.

Le nombre d'ondes où celles à faible énergie seront comprimées, mais celles au-dessus seront affichées normalement.

compression_ratio

A numeric value indicating the ratio by which to squeeze the data

Une valeur numérique indiquant le rapport selon lequel compresser les données

Value

the FTIR plot as a ggplot2 object, with x axis compressed for some wavenumber range

le tracé IRTF en tant qu'objet ggplot2, avec l'axe des x comprimé pour une certaine gamme de nombres d'ondes

Examples

if (requireNamespace("ggplot2", quietly = TRUE)) {
  # Generate a plot
  biodiesel_plot <- plot_ftir(biodiesel)

  # Compress below 2000 cm^-1 by a factor of 5
  compress_low_energy(biodiesel_plot, cutoff = 2000, compression_ratio = 5)
}

Convert Between Absorbance and Transmittance

Description

These functions allow for the convenient conversion between %Transmittance and Absorbance units for the Y axis.

Converting between %Transmittance and absorbance units for the Y axis is not a simple flipping of axis or inversion. Instead, the two are related by the following formulas:

A=log10(%T100)A=-log_{10}(\tfrac{\%T}{100})

and

%T=10A100\%T=10^{-A}\cdot 100

.

Ces fonctions permettent une conversion pratique entre les unités %Transmittance et Absorbance pour l'axe Y. La conversion entre les unités %Transmittance et Absorbance pour l'axe Y n'est pas un simple retournement d'axe ou une inversion. Au lieu de cela, les deux sont liés par les formules suivantes :

A=log10(%T100)A=-log_{10}(\tfrac{\%T}{100})

and

%T=10A100\%T=10^{-A}\cdot 100

Usage

absorbance_to_transmittance(ftir)

transmittance_to_absorbance(ftir)

Arguments

ftir

A data.frame of FTIR spectral data including column to be converted. Can't contain both 'absorbance' and 'transmittance' column as the receiving column would be overwritten

Un data.frame de données spectrales IRTF incluant la colonne à convertir. Ne peut pas contenir les colonnes 'absorbance' et 'transmittance' car la colonne de réception serait écrasée.

Value

a data.frame of FTIR spectral data with conversion between absorbance or transmittance as requested. Note the original data column is removed since FTIR spectral data frames can't be fed into plotting functions with both transmittance and absorbance data included.

un data.frame de données spectrales IRTF avec conversion entre l'absorbance ou la transmittance comme demandé. Notez que la colonne de données d'origine est supprimée car les trames de données spectrales IRTF ne peuvent pas être introduites dans les fonctions de tracé avec les données de transmittance et d'absorbance incluses.

Examples

# Convert from absorbance to transmittance
sample_spectra_transmittance <- absorbance_to_transmittance(sample_spectra)

# Convert back to absorbance
sample_spectra_absorbance <- transmittance_to_absorbance(sample_spectra_transmittance)

Get Plot Sample IDs

Description

Get the sample IDs from a prepared plot. Useful if renaming in the plot legend.

Obtenez les ID d’échantillon à partir d’un tracé préparé. Utile si vous renommez dans la légende de le tracé

Usage

get_plot_sample_ids(ftir_spectra_plot)

Arguments

ftir_spectra_plot

A plot generated by [plot_ftir()] or [plot_ftir_stacked()].

Un tracé généré par [plot_ftir()] ou [plot_ftir_stacked()].

Value

A vector of factors corresponding to the sample IDs in the plot.

unvecteur de facteurs correspondant aux ID d'échantillon dans le tracé

See Also

[rename_plot_sample_ids()]

Examples

if (requireNamespace("ggplot2", quietly = TRUE)) {
  # Prepare a plot
  p <- plot_ftir(biodiesel)

  # Get the Sample IDs
  get_plot_sample_ids <- (p)
}

Convert 'ir' to 'PlotFTIR' data format

Description

convert data from the 'ir' package to a structure that will work with 'PlotFTIR'.

convertir les données du paquet 'ir' en une structure qui fonctionnera avec 'PlotFTIR'.

Usage

ir_to_plotftir(ir_data, what = NA)

Arguments

ir_data

data of class 'ir' from 'ir' package

données de la classe 'ir' du paquet 'ir'.

what

which samples to convert to 'PlotFTIR' format. Defaults to all available spectra.

les échantillons à convertir au format 'PlotFTIR'. Par défaut, tous les spectres disponibles

Value

a data.frame compatible with 'PlotFTIR' functions

un data.frame compatible avec les fonctions 'PlotFTIR'.

See Also

[ir::ir_get_spectrum()] for information on how ir passes out data.

Examples

if (requireNamespace("ir", quietly = TRUE)) {
  # Convert samples 1 & 4 to PlotFTIR format
  ir_to_plotftir(ir::ir_sample_data, c(1, 4))
}

Move Plot Legend

Description

A shortcut to basic plot legend modifications. The plot legend can be moved to different locations, justifieid in those locations, and/or changed from vertical to horizontal. By default, legends are positioned with 'position = "right"', 'justification = "center"', and 'direction = "vertical"'.

For more complex legend manipulation please perform using [ggplot::theme()] controls directly on the plot object. More information at [https://ggplot2.tidyverse.org/reference/theme.html](https://ggplot2.tidyverse.org/reference/theme.html#examples).

Un raccourci vers les modifications de base de la légende du tracé. La légende du tracé peut être déplacée à différents emplacements, justifiée à ces endroits et/ou modifiée de verticale à horizontale. Par défaut, les légendes sont positionnées avec 'position = "right"', 'justification = "center"' et 'direction = "vertical"'.

Pour une manipulation plus complexe de légende, veuillez utiliser les contrôles [ggplot::theme()] directement sur l'objet de tracé. Pour plus d'informations, voir [https://ggplot2.tidyverse.org/reference/theme.html](https://ggplot2.tidyverse.org/reference/theme.html#examples).

Usage

move_plot_legend(
  ftir_spectra_plot,
  position = NULL,
  justification = NULL,
  direction = NULL,
  legend_title_position = NULL
)

Arguments

ftir_spectra_plot

A plot generated by [plot_ftir()] or [plot_ftir_stacked()].

Un tracé généré par [plot_ftir()] ou [plot_ftir_stacked()].

position

Position for the legend. One of '"none"', '"left"', '"right"', '"bottom"', or '"top"'.

Position pour la légende. Un des '"none"', '"left"', '"right"', '"bottom"', ou '"top"'.

justification

Justification for the legend. One of '"top"', '"bottom"', '"center"', '"left"', or '"right"'.

Justification de la légende. Un des '"top"', '"bottom"', '"center"', '"left"', ou '"right"'.

direction

Direction for the legend. One of '"horizontal"' or '"vertical"'.

Direction de la légende. L'un des '"horizontal"' ou '"vertical"'.

legend_title_position

A position for the legend title relative to the legend items. One of '"top"', '"right"', '"left"', or '"bottom"'.

Une position pour le titre de la légende par rapport aux éléments de légende. Un des '"top"', '"right"', '"left"', ou '"bottom"'.

Value

the FTIR plot as a ggplot2 object, with legend relocated as required.

le tracé IRTF en tant qu'objet ggplot2, avec la légende déplacée si nécessaire

Examples

if (requireNamespace("ggplot2", quietly = TRUE)) {
  # Generate a plot
  p <- plot_ftir(sample_spectra)

  # Move legend to bottom:
  move_plot_legend(p, position = "bottom", direction = "horizontal")
}

Normalize FTIR spectra

Description

Normalizing spectra restricts the range of absorbance values from 0 to 1 inclusive. This function shifts and scales spectra to achieve this absorbance range. It can be applied to a whole spectral set or just one sample, and across the entire spectra or by normalizing within a wavenumber region. This function does not operate on transmittance data, it will return an error.

La normalisation des spectres restreint la gamme des valeurs d'absorbance de 0 à 1 inclus. Cette fonction décale et met à l'échelle les spectres pour atteindre cette gamme d'absorbance. Elle peut être appliquée à un ensemble de spectres ou à un seul échantillon, et sur l'ensemble des spectres ou en normalisant dans une région de nombre d'ondes. Cette fonction ne fonctionne pas sur les données de transmittance, elle renverra une erreur.

Usage

normalize_spectra(ftir, sample_ids = NA, wavenumber_range = NA)

Arguments

ftir

A data.frame of FTIR spectral data including spectra to be baseline adjusted.

Un data.frame de données spectrales IRTF comprenant les spectres à ajuster à la ligne de base.

sample_ids

A vector of sample IDs to be adjusted. All sample IDs must be present in the ftir data.frame. If adjusting all spectra, provide NA or NULL. Unlisted sample_id from ftir will be left alone.

Un vecteur d'ID d'échantillons à ajuster Tous les ID d'échantillons doivent être présents dans la base de données ftir data.frame. Si l'ajustement concerne tous les spectres, fournir NA ou NULL. Les sample_id non listés de ftir seront laissés seuls.

wavenumber_range

If specifying a single point wavenumber; a single numeric value. If specifying a wavenumber range, then a vector of two numeric values.

Si l'on spécifie un nombre d'ondes ponctuel, une seule valeur numérique. Si l'on spécifie un nombre d'ondes, alors un vecteur de deux valeurs numériques.

Value

A data.frame containing the adjusted FTIR spectra.

Un data.frame contenant les spectres IRTF ajustee.

Examples

# Normalize all samples in `biodiesel`
normalize_spectra(biodiesel)

# Normalize just `paper` and `isopropanol` spectra from 4000 to 3100 cm^-1^
normalize_spectra(sample_spectra,
  sample_ids = c("paper", "isopropanol"),
  wavenumber_range = c(4000, 3100))

Plot FTIR Spectra Overlaid

Description

Produce a basic spectra overlay plot for all samples found in the FTIR dataset provided.

Produisez un tracé de base de superposition de spectres pour tous les échantillons trouvés dans l'ensemble de données IRTF fourni.

Usage

plot_ftir(
  ftir,
  plot_title = "FTIR Spectra",
  legend_title = "Sample ID",
  lang = NA
)

Arguments

ftir

A data.frame in long format with columns 'sample_id', 'wavenumber', and 'absorbance'. The 'absorbance' column may be replaced by a 'transmittance' column for transmittance plots. The code determines the correct y axis units and labels the plot/adjusts the margins appropriately.

Un data.frame au format long avec les colonnes 'sample_id', 'wavenumber', et 'absorbance'. La colonne 'absorbance' peut être remplacée par une colonne 'transmittance' pour les tracés de transmission. Le code détermine les unités correctes de l'axe y et étiquette le tracé/ajuste les marges de manière appropriée.

plot_title

A title for a plot. Defaults to "FTIR Spectra". If a vector length two, the second element will be used for a subtitle.

Un titre pour une trace. La valeur par défaut est «FTIR Spectra». Si un vecteur mesure deux, le deuxième élément sera utilisé pour un sous-titre.

legend_title

A title for the legend. Defaults to "Sample ID".

Un titre pour la légende. La valeur par défaut est «Sample ID».

lang

An optional argument for language. If set to one of 'fr', 'french', 'francais', or 'français' the axis and default plot and legend titles will change to french. If non-default legend or plot titles are provided they are used as-is. You can also provide 'en', 'english' or 'anglais', or (the default) 'NA' will use the default language from user options. To set a permanent default, set 'options("PlotFTIR.lang" = "en")' or 'options("PlotFTIR.lang" = "fr")' for English or French, respectively.

Un argument optionnel pour la langue. S'il vaut 'Fr', 'French', 'Francais', ou ‘Français', l’axe et les titres par défaut de le tracé et du légende seront en français. Si des titres du légende ou de tracé autres que ceux par défaut sont fournis, ils seront utilisés tels quels. Vous pouvez aussi fournir 'en', 'english' ou 'anglais', ou (le défaut) 'NA' qui utilisera le langue par défaut des options de l'utilisateur. Pour définir une valeur par défaut permanente, mettez 'options("PlotFTIR.lang" = "en")' ou ‘options("PlotFTIR.lang" = "fr")' pour l’anglais ou le français, respectivement.

Value

a ggplot object containing a FTIR spectral plot. The plot and legend titles are as provided, with each sample provided a different default color. Because this is a ggplot object, any other ggplot modifiers, layers, or changes can be applied to the returned object. Further manipulations can be performed by this package. Peut également fournir 'en', 'english' ou 'anglais'.

un objet ggplot contenant un tracé spectral IRTF. Les titres de le tracé et de la légende sont tels que fournis, avec une couleur par défaut différente pour chaque échantillon. Puisqu'il s'agit d'un objet ggplot, tous les autres modificateurs, calques ou changements ggplot peuvent être appliqués à l'objet retourné. D'autres manipulations peuvent être effectuées par ce package.

Examples

if (requireNamespace("ggplot2", quietly = TRUE)) {
  # Plot a basic FTIR Spectra overlay from the `sample_spectra` data set with default titles
  plot_ftir(sample_spectra)
}

Plot FTIR in stacked format

Description

Plot the FTIR spectra in a journal prepared format. It may be desirable to plot spectra 'stacked and offset' by a certain amount. In this case the y axis becomes non-labelled and each charts baseline (0 for absorbance or 100 for transmittance) is offset by a certain amount.

Tracez les spectres IRTF dans un format préparé par un journal. Il peut être souhaitable de tracer les spectres 'empilés et décalés' d'une certaine quantité. Dans ce cas l'axe y devient non étiqueté et chaque ligne de base du graphique (0 pour absorbance ou 100 pour la transmittance) est décalée d'une certaine quantité.

Usage

plot_ftir_stacked(
  ftir,
  plot_title = "FTIR Spectra",
  legend_title = "Sample ID",
  stack_offset = 10,
  lang = NA
)

Arguments

ftir

A data.frame in long format with columns 'sample_id', 'wavenumber', and 'absorbance'. The 'absorbance' column may be replaced by a 'transmittance' column for transmittance plots. The code determines the correct y axis units and labels the plot/adjusts the margins appropriately.

Un data.frame au format long avec les colonnes 'sample_id', 'wavenumber', et 'absorbance'. La colonne 'absorbance' peut être remplacée par une colonne 'transmittance' pour les tracés de transmission. Le code détermine les unités correctes de l'axe y et étiquette le tracé/ajuste les marges de manière appropriée.

plot_title

A title for a plot. Defaults to "FTIR Spectra". If a vector length two, the second element will be used for a subtitle.

Un titre pour une trace. La valeur par défaut est «FTIR Spectra». Si un vecteur mesure deux, le deuxième élément sera utilisé pour un sous-titre.

legend_title

A title for the legend. Defaults to "Sample ID".

Un titre pour la légende. La valeur par défaut est «Sample ID».

stack_offset

The amount in percentage of stacking offset to use. For transmittance this is directly linked to the units of Y axis, for absorbance this is about 0.2 absorbance units.

Le montant en pourcentage de décalage d'empilement à utiliser. Pour transmittance, cette valeur est directement liée aux unités de l'axe y, pour l'absorbance cela représente environ 0,2 unités d'absorbance.

lang

An optional argument for language. If set to one of 'fr', 'french', 'francais', or 'français' the axis and default plot and legend titles will change to french. If non-default legend or plot titles are provided they are used as-is. You can also provide 'en', 'english' or 'anglais', or (the default) 'NA' will use the default language from user options. To set a permanent default, set 'options("PlotFTIR.lang" = "en")' or 'options("PlotFTIR.lang" = "fr")' for English or French, respectively.

Un argument optionnel pour la langue. S'il vaut 'Fr', 'French', 'Francais', ou ‘Français', l’axe et les titres par défaut de le tracé et du légende seront en français. Si des titres du légende ou de tracé autres que ceux par défaut sont fournis, ils seront utilisés tels quels. Vous pouvez aussi fournir 'en', 'english' ou 'anglais', ou (le défaut) 'NA' qui utilisera le langue par défaut des options de l'utilisateur. Pour définir une valeur par défaut permanente, mettez 'options("PlotFTIR.lang" = "en")' ou ‘options("PlotFTIR.lang" = "fr")' pour l’anglais ou le français, respectivement.

Value

a ggplot object containing a FTIR spectral plot. The plot and legend titles are as provided, with each sample provided a different default color. Because this is a ggplot object, any other ggplot modifiers, layers, or changes can be applied to the returned object. Further manipulations can be performed by this package. Peut également fournir 'en', 'english' ou 'anglais'.

un objet ggplot contenant un tracé spectral IRTF. Les titres de le tracé et de la légende sont tels que fournis, avec une couleur par défaut différente pour chaque échantillon. Puisqu'il s'agit d'un objet ggplot, tous les autres modificateurs, calques ou changements ggplot peuvent être appliqués à l'objet retourné. D'autres manipulations peuvent être effectuées par ce package.

See Also

[zoom_in_on_range()] to 'zoom' into a specified range, [compress_low_energy()] to make the x axis non-linear (compressing lower energy regions), [add_wavenumber_marker()] to add markers to highlight important wavenumbers, and [move_plot_legend()] to modify the legend position.

[zoom_in_on_range()] pour 'zoomer' sur une gamme spécifiée, [compress_low_energy()] pour rendre l'axe x non linéaire (en compression les régions à basse énergie), [add_wavenumber_marker()] pour ajouter des marqueurs afin de mettre en évidence les nombres d'ondes importants, et [move_plot_legend()] pour modifier la position de la légende.

Examples

if (requireNamespace("ggplot2", quietly = TRUE)) {
  # Plot FTIR spectras stacked showing the differences in the `biodiesel` dataset
  plot_ftir_stacked(biodiesel)
}

Convert 'PlotFTIR' data to 'ChemoSpec' format

Description

Converts 'PlotFTIR' data to that ready to use by the 'ChemoSpec' package.

Convertit les données 'PlotFTIR' en données prêtes à être utilisées par le paquet 'ChemoSpec'.

Usage

plotftir_to_chemospec(
  ftir,
  group_crit = NA,
  group_colours = "auto",
  description = "FTIR Study"
)

Arguments

ftir

A data.frame in long format with columns 'sample_id', 'wavenumber', and 'absorbance'. The 'absorbance' column may be replaced by a 'transmittance' column for transmittance plots. The code determines the correct y axis units and labels the plot/adjusts the margins appropriately.

Un data.frame au format long avec les colonnes 'sample_id', 'wavenumber', et 'absorbance'. La colonne 'absorbance' peut être remplacée par une colonne 'transmittance' pour les tracés de transmission. Le code détermine les unités correctes de l'axe y et étiquette le tracé/ajuste les marges de manière appropriée.

group_crit

A vector of character strings. Corresponds to [ChemoSpec::files2SpectraObject()] 'gr.crit' parameter.

Un vecteur de chaînes de caractères. Correspond au paramètre 'gr.crit' de [ChemoSpec::files2SpectraObject()].

group_colours

Group colours. Corresponds to [ChemoSpec::files2SpectraObject()] 'gr.cols' parameter.

Couleurs du groupe. Correspond au paramètre 'gr.cols' de [ChemoSpec::files2SpectraObject()].

description

A description of the experiment. Corresponds to [ChemoSpec::files2SpectraObject()] 'descrip' parameter.

Description de l'expérience. Correspond au paramètre 'descrip' de [ChemoSpec::files2SpectraObject()].

Value

A 'ChemoSpec' data object

Un objet de données 'ChemoSpec'

See Also

[ChemoSpec::files2SpectraObject()] for import requirements, and [chemospec_to_plotftir()] for converting to 'PlotFTIR' format.

[ChemoSpec::files2SpectraObject()] pour les conditions d'importation, et [chemospec_to_plotftir()] pour la conversion au format 'PlotFTIR'.

Examples

if (requireNamespace("ChemoSpec", quietly = TRUE) && interactive()) {
  # convert biodiesel to a `chemospec` object
  plotftir_to_chemospec(biodiesel)
}

Convert 'PlotFTIR' data to 'ir'

Description

Converts 'PlotFTIR' data to that ready to use by the 'ir' package.

Convertit les données 'PlotFTIR' en données prêtes à être utilisées par le paquet 'ir'.

Usage

plotftir_to_ir(ftir, metadata = NA)

Arguments

ftir

A data.frame in long format with columns 'sample_id', 'wavenumber', and 'absorbance'. The 'absorbance' column may be replaced by a 'transmittance' column for transmittance plots. The code determines the correct y axis units and labels the plot/adjusts the margins appropriately.

Un data.frame au format long avec les colonnes 'sample_id', 'wavenumber', et 'absorbance'. La colonne 'absorbance' peut être remplacée par une colonne 'transmittance' pour les tracés de transmission. Le code détermine les unités correctes de l'axe y et étiquette le tracé/ajuste les marges de manière appropriée.

metadata

Additional data to pass to 'ir' to include as metadata. Should be structured as a data.frame.

Données supplémentaires à transmettre à 'ir' pour les inclure dans les métadonnées. Doit être structuré comme un data.frame.

Value

an 'ir' classed data.frame structured for use in that package.

un data.frame de classe 'ir' structuré pour être utilisé dans ce paquet.

See Also

[ir::ir_new_ir()] for information on how ir takes in data.

Examples

if (requireNamespace("ir", quietly = TRUE)) {
  # convert biodiesel to a `ir` object
  plotftir_to_ir(biodiesel,
    metadata = data.frame("Biodiesel_Content" = c(0, 0.25, 0.5, 1, 2.5, 5, 7.5, 10, 0.5, 5, NA))
  )
}

Read FTIR file

Description

Reads a provided file and returns a data.frame in the proper format for PlotFTIR functions.

Lit un fichier fourni et renvoie un data.frame dans le format approprié pour les fonctions PlotFTIR.

Usage

read_ftir(path = ".", file = NA, sample_name = NA, ...)

Arguments

path

Path to the file. Default is the current working directory, as ".". Can include the filename, in which case provide NA as the filename.

Chemin d'accès au fichier. Par défaut, il s'agit du répertoire de travail actuel, sous la forme ".". Peut inclure le nom du fichier, auquel cas il faut fournir NA comme nom de fichier.

file

File name, required. If the file and path are provided together as path, then NA is accepted.

Nom du fichier, obligatoire. Si le fichier et le chemin sont fournis ensemble en tant que chemin, alors NA est accepté.

sample_name

Name for sample_id column in the returned data.frame. If not provided, the file name is used without the extension.

Nom de la colonne sample_id dans le data.frame renvoyé. S'il n'est pas fourni, le nom du fichier est utilisé sans l'extension.

...

Additional parameters to pass to the file reading function. For CSV files, see utils::read.csv(), it may be wise to pass col.names to disambiguate the input data.

Paramètres supplémentaires à transmettre à la fonction de lecture de fichier. Pour les fichiers CSV, voir utils::read.csv(), il peut être judicieux de passer col.names pour désambiguïser les données d'entrée.

Value

a data.frame containing the spectral data from the file.

un data.frame contenant les données spectrales du fichier.

See Also

read_ftir_directory()

Examples

# Writing a temporary file to read later
tf <- tempfile(fileext = ".csv")
write.csv(sample_spectra[sample_spectra$sample_id == "paper", c("wavenumber", "absorbance")],
  file = tf, row.names = FALSE
)

# Read the .csv file and call the sample `sample1`
read_ftir(tf, sample_name = "sample1")

Read FTIR file

Description

Reads provided files and returns a data.frame in the proper format for PlotFTIR functions.

Lit les fichiers fournis et renvoie un data.frame au format approprié pour les fonctions PlotFTIR.

Usage

read_ftir_directory(path, files, sample_names = NA, ...)

Arguments

path

Path to the file. Default is the current working directory, as ".".

Chemin d'accès au fichier. Par défaut, il s'agit du répertoire de travail actuel, sous la forme ".".

files

File names, required.

Noms de fichiers, obligatoires.

sample_names

Name for sample_id column in the returned data.frame. If not provided, the file names are used without the extension.

Nom de la colonne sample_id dans le data.frame renvoyé. S'il n'est pas fourni, les noms de fichiers sont utilisés sans l'extension.

...

Additional parameters to pass to the file reading function. For CSV files, see utils::read.csv(), it may be wise to pass col.names to disambiguate the input data.

Paramètres supplémentaires à transmettre à la fonction de lecture de fichier. Pour les fichiers CSV, voir utils::read.csv(), il peut être judicieux de passer col.names pour désambiguïser les données d'entrée.

Value

a data.frame containing the spectral data from the files.

un data.frame contenant les données spectrales des fichiers.

See Also

read_ftir()

Examples

# Putting some files in a temp dir to read back into PlotFTIR:
td <- tempdir()
write.csv(sample_spectra[sample_spectra$sample_id == "paper", c("wavenumber", "absorbance")],
  file = file.path(td, "ftir_sample_1.csv"), row.names = FALSE
)
write.csv(sample_spectra[sample_spectra$sample_id == "toluene", c("wavenumber", "absorbance")],
  file = file.path(td, "ftir_sample_2.csv"), row.names = FALSE
)

# Read .csv files from the temp directory and call them `sample-1` and `sample-2`
read_ftir_directory(td, c("ftir_sample_1.csv", "ftir_sample_2.csv"), c("sample-1", "sample-2"))

Recalculate Baseline

Description

It may be desired to shift the baseline signal (0 for absorbance or 100 for transmittance) to aid in plotting the spectra. This can be done for all samples or a subset, using the same shift for all adjusted samples or calculated individually.

Recalculate or shift to baseline/max transmittance can be done following one of a few methods:

  • To shift baseline based on the value at a given wavenumber: ⁠recalculate_baseline(ftir, wavenumber_range = [numeric], method = 'point')⁠

  • To shift baseline based on the average value across a provided wavenumber range: ⁠recalculate_baseline(ftir, wavenumber_range = c([numeric], [numeric]), method = 'average')⁠

  • To shift baseline based on the value at the single lowest point of absorbance (or highest point of transmittance) across the whole spectra recalculate_baseline(ftir, method = 'minimum')

  • To shift baseline based on the value at the single lowest point of absorbance (or highest point of transmittance) in a given range ⁠recalculate_baseline(ftir, wavenumber_range = c([numeric], [numeric]), method = 'minimum')⁠

To perform the exact same baseline adjustment on all samples, specify individually = FALSE. To adjust with a unique determination for each sample, specify individualy = TRUE.

Il peut être souhaitable de décaler le signal de la ligne de base (0 pour l'absorbance ou 100 pour la transmittance) pour faciliter le tracé des spectres. Cela peut être fait pour tous les échantillons ou un sous-ensemble, en utilisant le même décalage pour tous les échantillons ajustés ou calculés individuellement.

Le recalcul ou le décalage de la ligne de base/transmittance maximale peut être effectué en suivant l'une des méthodes suivantes :

  • Pour décaler la ligne de base en fonction de la valeur à un nombre d'ondes donné : ⁠recalculate_baseline(ftir, wavenumber_range = [numeric], method = 'point')⁠

  • Pour décaler la ligne de base en fonction de la valeur moyenne sur un nombre d'ondes donné : #' ⁠recalculate_baseline(ftir) = [numerique], method = 'point') ⁠recalculate_baseline(ftir, wavenumber_range = c(numeric, numeric), method = 'average')'

  • Pour décaler la ligne de base en fonction de la valeur du point d'absorbance le plus bas (ou du point de transmittance le plus élevé) sur l'ensemble des spectres. recalculate_baseline(ftir, method = 'minimum')

  • Décaler la ligne de base en fonction de la valeur du point d'absorbance le plus bas (ou du point de transmittance le plus élevé) dans une gamme donnée. ⁠recalculate_baseline(ftir, wavenumber_range = c([numeric], [numeric]), method = 'minimum')⁠

    Pour effectuer exactement le même ajustement de la ligne de base sur tous les échantillons, spécifiez individually = FALSE. Pour ajuster avec une détermination unique pour chaque échantillon, spécifiez individualy = TRUE.

Usage

recalculate_baseline(
  ftir,
  sample_ids = NA,
  wavenumber_range = NA,
  method = "average",
  individually = TRUE
)

Arguments

ftir

A data.frame of FTIR spectral data including spectra to be baseline adjusted.

Un data.frame de données spectrales IRTF comprenant les spectres à ajuster à la ligne de base.

sample_ids

A vector of sample IDs to be adjusted. All sample IDs must be present in the ftir data.frame. If adjusting all spectra, provide NA or NULL. Unlisted sample_id from ftir will be left alone.

Un vecteur d'ID d'échantillons à ajuster Tous les ID d'échantillons doivent être présents dans la base de données ftir data.frame. Si l'ajustement concerne tous les spectres, fournir NA ou NULL. Les sample_id non listés de ftir seront laissés seuls.

wavenumber_range

If specifying a single point wavenumber; a single numeric value. If specifying a wavenumber range, then a vector of two numeric values.

Si l'on spécifie un nombre d'ondes ponctuel, une seule valeur numérique. Si l'on spécifie un nombre d'ondes, alors un vecteur de deux valeurs numériques.

method

One of three values:

  • If adjusting by the value from a specific wavenumber, provide "point",

  • If adjusting by the average from a range, provide "average".

  • If adjusting by the minimum (for absorbance) or maximum (for transmittance) from a range or spectra, provide "minimum" or "maximum", the appropriate transformation will be performed based on spectra type.

    Une des trois valeurs :

  • Si l'ajustement se fait par la valeur d'un nombre d'ondes spécifique, fournir "point",

  • Si l'ajustement se fait par la moyenne d'une gamme, fournir "average".

  • Si l'ajustement se fait par le minimum (pour l'absorbance) ou le maximum (pour la transmittance) d'une gamme ou de spectres, indiquez "minimum" ou "maximum", la transformation appropriée sera effectuée en fonction du type de spectre.

individually

If adjusting all samples by the same amount, specify TRUE, else specify FALSE for unique adjustments. When TRUE, the smallest absolute individual sample adjustment to achieve baseline will be applied to all named samples.

Si vous ajustez tous les échantillons de la même manière, spécifiez TRUE, sinon spécifiez FALSE pour des ajustements uniques. Si TRUE, le plus petit ajustement absolu d'un échantillon individuel pour atteindre la ligne de base sera appliqué à tous les échantillons nommés.

Value

A data.frame containing the adjusted FTIR spectra.

Un data.frame contenant les spectres IRTF ajustee.

Examples

# Adjust the biodiesel spectra to minimum for each sample
recalculate_baseline(biodiesel, method = "minimum", individually = TRUE)

Rename Sample IDs in Plot

Description

This function permits renaming Sample IDs as shown in the legend of a plot. While typically having proper names assigned in the data is preferred, this function allows for names to be modified after plot creation.

Cette fonction permet de renommer les identifiants des échantillons dans la légende d'un tracé. Bien qu'il soit préférable d'attribuer les noms appropriés dans les données, cette fonction permet de modifier les noms après la création du tracé.

Usage

rename_plot_sample_ids(ftir_spectra_plot, sample_ids)

Arguments

ftir_spectra_plot

A plot generated by plot_ftir() or plot_ftir_stacked().

Un tracé généré par plot_ftir() ou plot_ftir_stacked().

sample_ids

A named vector of format "new name" = "old name". Must include all sample ID old names (a pair of "old name" = "old name" is permissible and results in no renaming for that sample).

Un vecteur nommé du format "nouveau nom" = "ancien nom". Doit inclure tous les anciens noms d'ID d'échantillon (une paire de "ancien nom" = "ancien nom" est autorisée et n'entraîne aucun changement de nom pour cet échantillon).

Value

the FTIR plot as a ggplot2 object, with samples renamed in the legend.

le tracé IRTF en tant qu'objet ggplot2, avec les échantillons renommés dans la légende.

Examples

if (requireNamespace("ggplot2", quietly = TRUE)) {
  # Generate a plot
  p <- plot_ftir(sample_spectra)

  # Rename Samples in Legend:
  new_ids <- c(
    "Toluene" = "toluene", "C7 Alkanes" = "heptanes", "IPA" = "isopropanol",
    "White Paper" = "paper", "PS Film" = "polystyrene"
  )
  rename_plot_sample_ids(p, new_ids)
}

FTIR example data

Description

This dataset holds example data from Attenuated Total Reflectance (ATR) type FTIR instruments. Solvents were collected on 5-Bounce ZnSe ATR-FTIR and solids were collected on a 1-Bounce Diamond ATR-FTIR.

The samples included in this data set are: * 'toluene' a FTIR spectra of toluene. * 'isopropanol' a FTIR spectra of isopropanol. * 'heptanes' a FTIR spectra of heptanes. * 'paper' a FTIR spectra of a commercially available white paper. * 'polystyrene' a FTIR spectra of polystyrene film.

Ce donnée contient des exemples de données provenant d'instruments IRTF de type réflectance totale atténuée (RTA). Les solvants ont été collectés sur un RTA-IRTF ZnSe à 5 rebonds et les solides ont été collectés sur un RTA-IRTF diamant à 1 rebond.

Les échantillons inclus dans cet ensemble de données sont : * 'toluene' un spectre IRTF du toluène. * ‘isopropanol' un spectre IRTF de l’isopropanol. * ‘heptanes' un spectre IRTF d’heptanes. * ‘paper' un spectre IRTF d’un livre blanc disponible dans le commerce. * ‘polystyrene' un spectre IRTF d’un film de polystyrène

Usage

sample_spectra

Format

The data is in a long format data.frame, ready for use, and with the following variables:

* 'wavenumber' wavenumber (x axis) value for each point. In units of wavenumbers (cm^-1). * 'absorbance' the absorbance of the sample at each specified wavenumber. * 'sample_id' the sample identity of the various included spectra.

Les données sont dans un format long data.frame, prêt à l'emploi, et avec les variables suivantes:

* ‘wavenmber' valeur du nombre d’onde (axe x) pour chaque point. En unités de nombres d'ondes (cm^-1). * ‘absorbance' l’absorbance de l'échantillon à chaque nombre d'onde spécifié. * ‘sample_id' identité d’échantillon des différents spectres inclus.


Save FTIR Plot

Description

Save FTIR plot object to file. Uses [ggplot2::ggsave()] to save to disk. Specify a filename ending with '.svg' for vector graphics, if requeste by a journal.

Enregistrer l'objet de tracé IRTF dans un fichier. Utilise [ggplot2::ggsave()] pour enregistrer sur le disque. Spécifier un nom de fichier se terminant par '.svg' pour les graphiques vectoriels, si un journal le demande.

Usage

save_plot(ftir_spectra_plot, filename, ...)

Arguments

ftir_spectra_plot

A plot generated by [plot_ftir()] or [plot_ftir_stacked()].

Un tracé généré par [plot_ftir()] ou [plot_ftir_stacked()].

filename

Name and directory of the file you wish to create. If it includes a extension the function will produce a file of that type. Options for filetypes include "eps", "ps", "tex" (pictex), "pdf", "jpeg", "tiff", "png", "bmp", "svg" or "wmf" (on windows only).

Nom et répertoire du fichier que vous souhaitez créer. S'il contient une extension, la fonction produira un fichier de ce type. Les options pour les types de fichiers incluent "eps", "ps", "tex" (pictex), "pdf", "jpeg", "tiff", "png", "bmp", "svg" ou "wmf" (sur Windows uniquement).

...

Additional arguements to pass to [ggplot2::ggsave()].

Arguments supplémentaires à passer à [ggplot2::ggsave()].

Value

invisible 'TRUE'

Examples

if (requireNamespace("ggplot2", quietly = TRUE)) {
  td <- tempdir()
  save_plot(plot_ftir(biodiesel), filename = file.path(td, "biodiesel_plot.png"))
}

Zoom in on a spectral range

Description

It's common to be interested in only a small portion of the FTIR range. In these cases, this function will zoom the spectral plot to the range provided.

Il est courant de s'intéresser uniquement à une petite partie de la gamme IRTF. Dans ces cas, cette fonction permet de zoomer sur le tracé spectral sur la gamme fournie.

Usage

zoom_in_on_range(ftir_spectra_plot, zoom_range = c(1000, 1900))

Arguments

ftir_spectra_plot

A plot generated by plot_ftir() or plot_ftir_stacked().

Un tracé généré par plot_ftir() ou plot_ftir_stacked().

zoom_range

A vector of length two, with the wavenumber range of interest. Order of provided limits is not important.

Un vecteur de longueur deux, avec la gamme de nombres d'ondes de d'intérêt. L'ordre des limites fournies n'est pas important.

Value

the FTIR plot as a ggplot2 object, with x axis limits as those supplied by zoom_range.

le tracé IRTF en tant qu'objet ggplot2, avec des limites d'axe x comme celles fournies par zoom_range.

Examples

if (requireNamespace("ggplot2", quietly = TRUE)) {
  # Generate a plot
  biodiesel_plot <- plot_ftir(biodiesel)

  # Zoom to a specified range of 1850 to 1650 cm^-1
  zoom_in_on_range(biodiesel_plot, c(1650, 1850))
}