Learn R Programming

PhenoSpectra

PhenoSpectra is an R package designed for processing, analyzing, and visualizing spectral data collected from 3D laser-based scanning systems. This package supports data from various domains, including agriculture, forestry, environmental monitoring, industrial quality control, and biomedical research.

Key Features

  • Data Handling:

    • Automated reading, merging, and preprocessing of spectral datasets.
    • Splitting timestamp columns into separate date and time components.
    • Group-based assignment of biological replicates (Bio.Rep).
  • Quality Control:

    • Detection of missing values and outliers.
    • Flexible handling of irregularities with options to replace, remove, or impute data.
    • Group-specific outlier detection using statistical methods.
  • Feature Selection & Prediction:

    • Selection of the most discriminative spectral variables using FDR correction.
    • Prediction of Spectral Disease Severity (SDS) using linear regression models.
  • Customizable Workflow:

    • Supports group-based analyses for treatments or other categorical variables.
    • Generates clean, publication-ready datasets and summary reports.

Installation

To install the PhenoSpectra package directly from GitHub:

  1. Ensure you have the devtools package installed:

    install.packages("devtools")
  2. Install PhenoSpectra:

    devtools::install_github("bayer-int/PhenoSpectra")

File Structure

Below is an overview of the directory structure of the PhenoSpectra package:

  • R: R functions (e.g., reads.R, qaqcs.R, feature_selection.R, predict_SDS.R)
  • man: Documentation files (auto-generated by Roxygen2)
  • data: Example datasets (if applicable)
  • Demo: Demo input/output files for testing functions
  • DESCRIPTION: Package metadata
  • NAMESPACE: Package imports and exports
  • README.md: Project overview and usage
  • LICENSE: Licensing information
  • inst: Installation-related files (if required)
  • vignettes: Extended examples and tutorials (if applicable)

Usage Examples

1. Using reads()

merged_data <- reads(
  directory = "Demo",
  pattern = "input",
  output_path = "Demo/processed_data.xlsx"
)

2. Using qaqcs()

result <- qaqcs(
  file_path = "Demo/raw_data.xlsx",
  output_path = "Demo/cleaned_data.xlsx",
  handle_missing = "impute",
  handle_outliers = "impute",
  group_by_col = "treatment"
)

# Access the cleaned data and summary table
cleaned_data <- result$cleaned_data
summary_table <- result$summary_table

3. Using feature_selection()

selected_features <- feature_selection(
  file_path = "Demo/cleaned_data.xlsx",
  output_path = "Demo/selected_features.xlsx",
  fdr_threshold = 0.01
)

# View the selected features
print(selected_features)

4. Using predict_SDS()

predicted_sds <- predict_SDS(
  cleaned_data = cleaned_data,
  sf_test = selected_features,
  fixed_effects = c("Scan.date")
)

# View predictions
print(predicted_sds)

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Contact

Copy Link

Version

Install

install.packages('PhenoSpectra')

Monthly Downloads

187

Version

0.1.0

License

MIT + file LICENSE

Maintainer

Medhat Mahmoud

Last Published

March 5th, 2025

Functions in PhenoSpectra (0.1.0)

qaqcs

Perform QA/QC on spectral data while preserving original column names
setup_environment

Setup Environment for PhenoSpectra
reads

Read and merge spectral data using data.table exclusively
feature_selection

Feature Selection for Spectral Data
predict_SDS

Predict Spectral Disease Severity (SDS)
PhenoSpectra-package

PhenoSpectra: Multispectral Data Analysis and Visualization
.onLoad

.onLoad Function
zzz

PhenoSpectra Internal Setup