REFT

REFT (Root Exudate Feature Toolkit) is an R package for molecule-oriented analysis of root exudate and metabolomics annotation tables. It supports batch database searching, SMILES matching, and calculation of six molecular descriptors.

Main features

Install dependencies

install.packages(c(
  "readxl", "dplyr", "purrr", "stringr", "tibble",
  "writexl", "webchem", "rcdk", "rcdklibs"
))

Install REFT

Option 1: Install from CRAN

install.packages("REFT")

Option 2: Install from a source tarball

install.packages("REFT_0.1.4.tar.gz", repos = NULL, type = "source")

Quick start

By default, reft_run() and reft_run_simple() return results in R and do not write files.

library(REFT)

res <- reft_run_simple(
  input_file = "example_root_exudate.xlsx"
)

head(res$descriptors)

To write output files, explicitly provide an output directory. In examples, use tempdir() or another user-chosen location.

res <- reft_run_simple(
  input_file = "example_root_exudate.xlsx",
  output_dir = tempdir()
)

Custom column names

library(REFT)

res <- reft_run(
  input_file = "your_data.xlsx",
  name_col = "Name",
  other_col = "Other_name(Kegg_name)",
  hmdb_col = "HMDB_ID",
  kegg_col = "Kegg_ID",
  output_dir = tempdir()
)

KEGG-microbe workflow

res <- reft_kegg_microbe_run(
  input_file = "microbe_ec.csv",
  output_dir = tempdir()
)

head(res$results)

Optional PubChem cache

If you want to cache PubChem results, explicitly choose a path. In examples or tests, use tempdir().

options(REFT.pubchem_cache_file = file.path(tempdir(), "REFT_pubchem_cache.rds"))

Output files

When output_dir is explicitly supplied, reft_run() writes:

When output_dir is explicitly supplied, reft_kegg_microbe_run() writes:

Returned object

Both reft_run() and reft_run_simple() return a named list:

reft_kegg_microbe_run() returns a named list:

Notes

Java / rcdk note

REFT can be installed without loading rcdk at package startup. Only the molecular descriptor calculation step requires rcdk/rJava.

If descriptor calculation fails on Windows, check that Java is installed and that R and Java use matching architectures.