linf.udcsts() to group samples by a chosen number
of their most abundant features, ignoring their order. For example,
samples led by A then B and samples led by B then A count towards the
same {A, B} group. The minimum group size is applied after
these samples are combined. Small groups can be marked as rare,
excluded, or reassigned; the original memberships are also kept. The
frequency table reports how many samples each group contains and what
percentage of samples are covered by groups at least that large.linf.udcst.graph() to build a network of groups
defined by their two leading features. By default, two pairs are linked
only when both occur among samples with the same three leading features.
Results include sample counts, measures of overlap, and each sample’s
group. Counts use all input samples, even when only some pairs are kept
in the network. Triangles are reported when all three pairs are
supported by the same three-feature group. Each link has length one.
Unconnected pairs and separate parts of the network are kept.transfer.dcsts() assigns new samples to previously
defined groups without changing their definitions. It now returns group
IDs as well as readable group names, with one row per sample and one
column per grouping level. These IDs can be used to match outputs from
the same grouping result. Do not use them to match groups from
independently created results.__, repeated
names, and features named like the rare-sample category no longer cause
groups to be confused. A suffix is added only when needed to distinguish
otherwise identical group names. Older results are updated automatically
when their groups can be identified unambiguously; otherwise, recreate
the grouping from the original data. Categories that collect rare
samples are not subdivided further.NA at that
level and all later levels. This also applies when
carry.forward.terminal.depths = TRUE.linf.hypercube.embedding() handle extremely large
finite input values and very small nonzero output values more reliably.
The new optional log.lambda argument and corresponding
result allow scaling values to be reused even when they are too extreme
to store directly; lambda is NA in those
cases. Inputs with fewer than two features give an error.filter.asv() and require
each cutoff to be a single valid value. Correctly handle samples with
zero total counts when deciding whether a feature is present from its
proportion of the sample. Empty results still contain the documented
information and original row and column numbers. Nonnegative fractional
counts remain accepted.NA without warnings. The existing
total.samples field continues to count assigned samples.
Printed results limit the number of groups shown and explain results
with no samples or only rare samples.valencia2k$cst$source_row to identify the source row for
each sample; existing sample IDs, order, abundances and read totals are
unchanged. Saved results record the package versions that produced them.
Corrections to choices between tied values change two assignments at
level 2 and ten at level 3, across ten source rows. The saved summaries
are updated to match.grip::edge.kk() function and records the
algorithm’s progress and stopping information.This release simplifies the available functions and requires grouping
results created by linf 0.2.0 or later.
refine.linf.csts() can choose groups to subdivide
automatically, or you can choose them with
lineages.to.refine. Call it repeatedly to add further
levels of subgroups.refine.linf.csts.iter() has been removed. Call
refine.linf.csts() repeatedly instead.asv.to.linf.csts() has been removed. Use
filter.asv(), normalize.linf(), and
linf.csts() in sequence to filter the data, rescale it, and
form groups, choosing the settings for each step explicitly.latex.linf.csts() has been removed. Format group
summary tables with general reporting tools such as
knitr::kable().linf.csts(),
which include the selected grouping and both treatments of small-group
samples: kept in a rare category (pure) and reassigned to
larger groups (absorb).This release changes function and result names to match the methods paper. It uses “dominance sample set” for samples sharing a leading feature, and “dominance lineage” for a sequence of group subdivisions. Code using the old names must be updated; the old names are no longer supported.
linf.cells() is replaced by
linf.dominant.features().lineage.id,
lineage.label, lineage.ids, and
lineage.labels for group IDs and readable names. At the
first grouping level, depth1.feature.index records the
column number of the leading feature.retained.feature.. Information before
that size check uses names beginning with
provisional.feature...pure when small-group samples are
kept in a rare category, and .absorb when they are
reassigned to larger groups.cells.to.refine is replaced by
lineages.to.refine, which names the groups to
subdivide.lineages, with lineage.id,
lineage.label, and lineage.size columns
identifying each group, its readable name, and its size.collapse.rare() and expand.rare() are
replaced by dcst.view(csts, view = "absorb") and
dcst.view(csts, view = "pure"), respectively, to select
results with or without reassignment of rare samples."rare" option for handling small groups has been
removed; use "pure" to keep rare samples separate from the
retained groups.