# Bioconductor Awst

We propose an Asymmetric Within-Sample Transformation (AWST) to regularize RNA-seq read...

- Repository: https://github.com/bioMate-AI/biomate-bioconductor-kb (793 stars)
- Category: Engineering
- License: see repository
- Last updated: 2026-06-20
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add bioMate-AI/biomate-bioconductor-kb --skill bioconductor-awst -g -a claude-code -y`
Codex: `npx skills add bioMate-AI/biomate-bioconductor-kb --skill bioconductor-awst -g -a codex -y`
Cursor: `npx skills add bioMate-AI/biomate-bioconductor-kb --skill bioconductor-awst -g -a cursor -y`
Gemini CLI: `npx skills add bioMate-AI/biomate-bioconductor-kb --skill bioconductor-awst -g -a gemini-cli -y`

## Description

We propose an Asymmetric Within-Sample Transformation (AWST) to regularize RNA-seq read counts and reduce the effect of noise on the classification of samples. AWST comprises two main steps: standardization and smoothing. These steps transform gene expression data to reduce the noise of the lowly expressed features, which suffer from background effects and low signal-to-noise ratio, and the influence of the highly expressed features, which may be the result of amplification bias and other experi

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# awst

## Workflows

### Standard Workflow

```r
library(awst)
library(SummarizedExperiment)
library(EDASeq)

# Load data (e.g., SummarizedExperiment)
data(airway, package = "airway")

# Filter lowly expressed genes
filter <- rowMeans(assay(airway)) >= 10
se <- airway[filter,]

# Apply Asymmetric Within-Sample Transformation
se <- awst(se)

# Filter uninformative genes using entropy
filtered <- gene_filter(se)

# Optional: Apply AWST after full-quantile normalization
assay(se, "fq") <- betweenLaneNormalization(assay(se), which = "full")
se_normalized <- awst(se, expr_values = "fq")
```
**Input/Output Note:** Inputs a `SummarizedExperiment` containing raw RNA-seq counts; outputs a `SummarizedExperiment` with transformed values in the `"awst"` assay and optionally filtered features.

## When to Use
- To regularize RNA-seq read counts and reduce the effect of noise on sample clustering or classification, especially for highly degraded or low input material samples like tumors or single cells.
- To perform per-sample standardization and asymmetric winsorization using `awst()` to reduce the influence of highly expressed features and noise of lowly expressed features.
- To filter out uninformative genes that contribute only noise to sample distances using the entropy-based `gene_filter()` function.

## When NOT to Use
- For differential expression analysis where raw or specifically modeled counts are required (use `DESeq2` or `edgeR` instead).
- For multi-sample batch effect correction across highly heterogeneous batches without prior normalization (use `sva::ComBat` or `removeBatchEffect` from `limma` instead).

## Data Requirements
- Input must be a `SummarizedExperiment` object (or a matrix of counts).
- Contains raw or normalized RNA-seq read counts (e.g., from `airway` dataset).
- Lowly expressed genes should be pre-filtered (e.g., keeping genes with `rowMeans(assay(se)) >= 10`).

The rest: https://github.com/bioMate-AI/biomate-bioconductor-kb/blob/HEAD/skills/transcriptomics/awst/SKILL.md
