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:
.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.
The easiest way to use admetshiny is through its interactive application:
The exported functions can also be used in plain R scripts.
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"))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"))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)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: