% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/IPS_calculation.R
\name{IPS_calculation}
\alias{IPS_calculation}
\title{Calculate Immunophenoscore (IPS)}
\usage{
IPS_calculation(eset, project = NULL, plot = FALSE)
}
\arguments{
\item{eset}{Gene expression matrix with official human gene symbols (HGNC)
as rownames. Expression values should be log2(TPM+1) or will be transformed
if max value > 100.}

\item{project}{Character string for project identifier. Default is NULL.}

\item{plot}{Logical. Whether to generate immunophenogram plots. Default is FALSE.}
}
\value{
Data frame containing:
\describe{
  \item{MHC}{MHC molecules score}
  \item{EC}{Effector cells score}
  \item{SC}{Suppressor cells score}
  \item{CP}{Checkpoints/Immunomodulators score}
  \item{AZ}{Aggregate score (sum of MHC, CP, EC, SC)}
  \item{IPS}{Immunophenoscore (0-10 scale)}
}
}
\description{
Calculates Immunophenoscore (IPS) from gene expression data. IPS is a
composite score measuring immunophenotype based on four major categories:
MHC molecules, immunomodulators, effector cells, and suppressor cells.
}
\examples{
\dontrun{
example_genes <- c(
  "HLA-A", "HLA-B", "HLA-C", "CD274", "PDCD1", "CTLA4",
  "CD8A", "CD8B", "GZMB", "PRF1", "FOXP3", "IL10"
)
sim_eset <- as.data.frame(matrix(
  rnorm(length(example_genes) * 5, mean = 5, sd = 2),
  nrow = length(example_genes), ncol = 5
))
rownames(sim_eset) <- example_genes
colnames(sim_eset) <- paste0("Sample", 1:5)
ips_result <- IPS_calculation(eset = sim_eset, project = "Example", plot = FALSE)
if (!is.null(ips_result)) head(ips_result)
}
}
