% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/linf.R
\name{refine.linf.csts.iter}
\alias{refine.linf.csts.iter}
\title{Iteratively refine dCSTs by one additional level}
\usage{
refine.linf.csts.iter(
  M,
  refined,
  cells.to.refine = NULL,
  n0 = 50,
  refinement.factor = 5,
  sep = "__",
  low.freq.policy = c("pure", "absorb"),
  rare.label = "RARE_DOMINANT",
  verbose = TRUE,
  backend = c("auto", "dense", "sparse")
)
}
\arguments{
\item{M}{Numeric matrix used for refinement.}

\item{refined}{A \code{"linf.csts"} object with an existing hierarchy.}

\item{cells.to.refine}{Character vector of leaf dominance-lineage IDs to
refine, or NULL for auto-selection. The argument name is retained for
backward compatibility.}

\item{n0}{Integer >= 1. Minimum support required to retain a child lineage.}

\item{refinement.factor}{Numeric > 0. Auto-selection threshold multiplier.}

\item{sep}{Character scalar used to concatenate hierarchical labels.}

\item{low.freq.policy}{Character. One of \code{"pure"} or \code{"absorb"}.
Default: \code{"pure"}. The legacy value \code{"rare"} is still accepted as
a deprecated alias for \code{"pure"}.}

\item{rare.label}{Character scalar for rare buckets when \code{low.freq.policy = "pure"}.}

\item{verbose}{Logical. If TRUE, print progress information.}

\item{backend}{Character. Matrix backend to use: \code{"auto"},
\code{"dense"}, or \code{"sparse"}. The default \code{"auto"} inherits the
backend from \code{M} or from \code{refined} when available.}
}
\value{
Updated \code{"linf.csts"} object with \code{cst.depth} increased by one.
}
\description{
Appends one refinement level to an existing dCST hierarchy produced by
\code{\link{refine.linf.csts}} or \code{\link{refine.linf.csts.iter}}.
Dominance-lineages to refine can be provided explicitly or selected
automatically based on \code{refinement.factor * n0}.
}
