% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/find_variable_genes.R
\name{find_variable_genes}
\alias{find_variable_genes}
\title{Identify Variable Genes in Expression Data}
\usage{
find_variable_genes(
  eset,
  data_type = c("count", "normalized"),
  methods = c("low", "mad"),
  prop = 0.7,
  quantile = 0.75,
  min.mad = 0.1,
  feas = NULL
)
}
\arguments{
\item{eset}{Numeric matrix. Gene expression data (genes as rows,
samples as columns).}

\item{data_type}{Character. Type of data: `"count"` or `"normalized"`.
Default is `"count"`.}

\item{methods}{Character vector. Methods for gene selection: `"low"`,
`"mad"`. Default is `c("low", "mad")`.}

\item{prop}{Numeric. Proportion of samples in which a gene must be expressed.
Default is 0.7.}

\item{quantile}{Numeric. Quantile threshold for minimum MAD (0.25, 0.5, 0.75).
Default is 0.75.}

\item{min.mad}{Numeric. Minimum allowable MAD value. Default is 0.1.}

\item{feas}{Character vector or `NULL`. Additional features to include.
Default is `NULL`.}
}
\value{
Matrix subset of `eset` containing variable genes.
}
\description{
Identifies variable genes from a gene expression dataset using specified
selection criteria. Supports multiple methods, including expression
thresholding and variability estimation via median absolute deviation (MAD).
}
\examples{
# Simulate data
set.seed(123)
sim_eset <- matrix(rnorm(100 * 20), 100, 20)
rownames(sim_eset) <- paste0("Gene", 1:100)
colnames(sim_eset) <- paste0("Sample", 1:20)

# Identify variable genes
eset_var <- find_variable_genes(
  eset = sim_eset,
  data_type = "normalized",
  methods = "mad",
  quantile = 0.25
)
head(eset_var)
}
\author{
Dongqiang Zeng
}
