read_qview_report() reads the flat report
exports Q-View writes next to the binary container – the
..._auto_report and
..._auto_all-parameters_report files, as either
.csv or .xlsx – and returns the same
qview object read_qview() builds. Use it when
only the exports were kept and the original .Q-View project
file is unavailable. It differs from read_qview() in two
deliberate ways:
"Reduced Concentration"
point estimate (one row per sample) with
statistic == "reduced"; and"< 52.50" cell yields
concentration = 52.50 with a new flag column
set to "<" (">" for upper bound,
"incalculable" for Incalculable), so
limit-of-quantification information survives import. A small
example-report.csv fixture ships in
inst/extdata/.Initial release. Pure-R parser for .Q-View binary
project files (chemiluminescent multiplex ELISA plate imaging and
quantification). No Java runtime, no H2 database driver, no compiled
code.
read_qview() now resolves the superseded MVCC page
versions that the embedded H2 container retains. A version truncated at
a 2048-byte page boundary (fewer analytes, or a number cut mid-digit) is
no longer mistaken for the current reading: for each physical (well,
replicate, analyte) the value occurring most often across the committed
page copies wins, breaking ties toward the most complete source row.
Per-well pixel intensities now match Q-View’s own grid exports to 1e-6,
and each well appears once in plate_layout.read_qview_template() auto-detects the field separator,
so semicolon-delimited (European-locale) and tab-delimited templates
parse the same as comma-delimited ones.plot(type = "replicate_scatter") no longer errors when
a well-group label maps to more than one well; duplicate readings are
averaged.read_qview(path, strip_prefix = FALSE): parses a
.Q-View container and returns a list of class
qview with project metadata, the analyte panel (units, LOD
/ LLOQ / ULOQ, assay-control range), well-group sample assignments,
per-well replicate pixel intensities, summary statistics, optional
back-calculated concentrations, curve fits, and a plate layout (all tidy
tibbles).read_qview_template(): parses the companion
well-assignment template CSV (NxM layout with Group Name / Group Type /
Dilution Factor sections).strip_qview_prefix(): reverses the producer-side naming
convention (ICal N -> Cal N,
GLow -> Low, HHigh ->
High, NFD... / N1234... ->
original sample ID).well_label(): vectorised plate-coordinate helper.is_qview(): predicate for the S3 class.print.qview(): compact one-screen summary.summary.qview(): per-analyte mean / SD / CV / min / max
grouped by well type, returned as a qview_summary tibble
with its own print method.plot.qview(type = ...): quick-look plate map,
per-analyte intensity heatmap, and replicate-1-vs-2 scatter; viridis
throughout.as_tibble.qview(): long-format pixel-intensity
tibble.write_qview_xlsx(), write_qview_csv(),
write_qview_rds(): pipe-friendly writers that return the
parsed object invisibly. qview_to_xlsx() /
qview_to_csv_dir() are kept as
lifecycle::deprecate_warn() aliases for
back-compatibility.qview_app(): monochrome bslib Shiny app with built-in
dark/light toggle, hex-sticker brand, large upload cap (default 512 MB),
per-table xlsx download, and a publication-ready 2x2 Overview tab (plate
layout / pixel-intensity distribution / replicate concordance / mean PI
by well type) with high-DPI PNG and vector PDF export.