jang1563/cbrn-physics-features
CBRN Physics Features Pre-computed physics-informed distributional features for pathogen-agnostic biological threat detection in gene expression data. Overview This dataset contains per-sample and per-group features computed from the shape of gene expression distributions rather than the identity of individual genes. The four core features — Gini coefficient, Shannon entropy, normalized entropy, and Zipf exponent — are platform-agnostic: they require no gene… See the full description on the dataset page: https://huggingface.co/datasets/jang1563/cbrn-physics-features.
CBRN Physics Features
Pre-computed physics-informed distributional features for pathogen-agnostic biological threat detection in gene expression data.
Overview
This dataset contains per-sample and per-group features computed from the shape of gene expression distributions rather than the identity of individual genes. The four core features — Gini coefficient, Shannon entropy, normalized entropy, and Zipf exponent — are platform-agnostic: they require no gene annotation, no probe mapping, and no platform-specific normalization.
These features enable:
- Cross-platform infection detection (AUROC 0.720 across 5 microarray/RNA-seq platforms)
- Radiation biodosimetry from tissue gene expression (AUROC 0.793)
- Dose-response modeling with monotonic feature-dose relationships
Dataset Structure
Total: 2,193 rows across 6 CSV files.
Features
Source Data
Features were computed from publicly available gene expression datasets:
- Infection: 10 GEO datasets (GSE161731, GSE157103, GSE63990, GSE60244, GSE72829, GSE236713, GSE100150, GSE111368, GSE40012, GSE73072) spanning RNA-seq, Affymetrix, Illumina, and Agilent platforms
- Radiation: 3 NASA GeneLab datasets (OSD-202 brain, OSD-211 spleen, OSD-237 skin)
Usage
import pandas as pd
# Load infection features
features = pd.read_csv("infection/per_sample_features.csv")
# Binary label: infected vs healthy
features["infected"] = (features["condition"] != "Healthy").astype(int)
# Train a simple classifier
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score
X = features[["gini", "shannon_entropy", "normalized_entropy", "zipf_gamma"]]
y = features["infected"]
scores = cross_val_score(LogisticRegression(), X, y, cv=5, scoring="roc_auc")
print(f"5-fold AUROC: {scores.mean():.3f} +/- {scores.std():.3f}")Code
Full analysis pipeline, vendored feature computation library, and figure generation scripts:
github.com/jang1563/cbrn-physics-features
Citation
@software{kim2026physics,
author = {Kim, JangKeun},
title = {Physics-Informed Distributional Features for CBRN Threat Detection},
year = {2026},
url = {https://github.com/jang1563/cbrn-physics-features},
license = {MIT}
}