The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Introduction to admetshiny

Xavier Clemente Garcia Cevallos

2026-09-22

Overview

admetshiny is an R package that provides an interactive Shiny application and a toolbox of functions for the management, calculation, filtering, visualization and exploratory analysis of molecular descriptors and ADMET properties of small molecules. The application is organised in two complementary modules:

  1. CDK & webchem — retrieve canonical SMILES from PubChem, enter them manually or upload them as a CSV, then compute nine physicochemical descriptors locally with the Chemistry Development Kit (CDK).
  2. ADMET Master Manager — upload any CSV or Excel (.xlsx) ADMET dataset and manually map its columns to the application’s 20-field standard schema. Missing descriptors are back-filled from SMILES via CDK when available.

Both modules share the same drug-likeness filters (Lipinski, Veber, Ghose, Egan, Muegge), the BOILED-Egg model, the P-gp substrate Random Forest classifier and the 14-chart catalogue.

Launching the application

The easiest way to use admetshiny is through its interactive application:

admetshiny::run_app()

Using the functions programmatically

The exported functions can also be used in plain R scripts.

Drug-likeness filters

library(admetshiny)

# Build a small toy dataset in the standard schema
d <- data.frame(
  MW = c(300, 650),
  LogP = c(2, 7),
  TPSA = c(40, 160),
  MR = c(70, 150),
  "#H-bond acceptors" = c(4, 12),
  "#H-bond donors" = c(2, 7),
  "#Rotatable bonds" = c(3, 14),
  "#Heavy atoms" = c(20, 80),
  "#Aromatic heavy atoms" = c(6, 9),
  check.names = FALSE
)

# Add the violation columns required by the filters
d <- computeViolationColumns(d)

# Apply Lipinski + Veber
filtered <- applyFilters(d, filters = c("Lipinski", "Veber"))

CDK descriptors from SMILES

library(admetshiny)

smiles <- c("CCO", "CC(=O)OC1=CC=CC=C1C(=O)O", "CN1C=NC2=C1C(=O)N(C(=O)N2C)C")

# Compute the 9 CDK descriptors (MW, ALogP, TPSA, HBD, HBA, RB, HA, AromHA, MR)
desc <- calcCDKDescriptors(smiles)

# Map to the standard schema and add #violations + ADMET properties
desc <- mapCDKDescriptors(desc)

# Apply all five drug-likeness filters
filtered <- applyFilters(desc,
                         filters = c("Lipinski", "Veber", "Ghose",
                                     "Egan", "Muegge"))

Normalizing any external ADMET dataset

The mapADMETColumns() function replaces the former platform-specific normalisation functions. It takes a raw data.frame, a user-specified named mapping vector (column name -> standard field code), and an optional calculate_cdk flag:

d <- read.csv("my_admet.csv", check.names = FALSE)

# Map user columns to the standard schema. The codes are documented in
# ?mapADMETColumns. Missing descriptors are back-filled from SMILES via CDK.
mapping <- setNames(
  c("SMILES", "Name", "MW", "LogP", "TPSA"),
  c("CanonicalSMILES", "Compound", "MW", "iLOGP", "Topological PSA")
)
d <- mapADMETColumns(d, mapping, calculate_cdk = TRUE)

BOILED-Egg plot

# Requires LogP and TPSA columns. If a WLOGP column is present, the official
# WLOGP polygons are used; otherwise the ALogP-trained polygons.
plotBoiledEgg(filtered)

Optional dependencies

Some features rely on suggested packages that are not installed automatically:

Feature Package
CDK descriptors rcdk (requires Java JDK)
SMILES from PubChem webchem
Radar plot fmsb
t-SNE Rtsne, ggrepel
UMAP uwot
PCA labels ggrepel
Tanimoto / AGNES rcdk, fingerprint, cluster
Parallel coordinates GGally
Excel upload / export openxlsx
Colour palettes viridisLite

Install them with:

install.packages(c("rcdk", "webchem", "fmsb", "Rtsne", "uwot", "ggrepel",
                   "fingerprint", "cluster", "GGally", "openxlsx",
                   "viridisLite"))

References

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.