\donttest{}. This
avoids failures caused by incompatible JPEG libraries on a build host.BASILISK_EXTERNAL_DIR is
explicitly set to a directory that does not exist. Package checks continue
to run the test on systems with a usable basilisk cache.BASILISK_EXTERNAL_DIR before running the
live Python examples in the vignettes. This prevents vignette builds from
failing when a build machine points basilisk to a cache directory that does
not exist.eval=py_ok; reload examples use the pipeline's output_dir field.BiocType: Software DESCRIPTION field. It is documented as
optional for a plain Software package (only required for Docker/Workflow
submissions), and the current BiocCheck does not recognize it, producing
a "Unknown or non-standard DESCRIPTION field(s)" WARNING; since it isn't
required, removing it is the simplest fix.Version bump only, to trigger a fresh Bioconductor build report; no functional changes. All CI checks (R CMD check on Linux/macOS/Windows, BiocCheck) pass as of 0.99.5.
Pipeline ran but JSON parsing failed on Windows. The pipeline's
stdout on success is a single very long JSON line (colony_polygon alone
can run to tens of thousands of points per image); system2()'s
intern-style stdout = TRUE capture has a per-line buffer limit on
Windows that silently splits such long lines at arbitrary byte offsets,
and rejoining the pieces with "\n" corrupted the JSON mid-token. Both
stdout and stderr are now redirected to files and read back whole, which
avoids the line-splitting entirely.Python pipeline failed (exit status 2)). system2()'s env argument is only honored on Windows
for a small set of commands (R, make) that parse VAR=value strings
from their own argv; for arbitrary executables such as python it was
silently ignored there, and those strings were instead passed through as
positional arguments, which Python then tried to open as a script file.
PYTHONPATH/MPLCONFIGDIR/PYTHONUNBUFFERED are now set on the R
process itself (restored on exit) so the child process inherits them
identically on every platform.system2() calls to the Python pipeline now capture stderr together
with stdout so pipeline failures include the actual Python traceback
instead of just an exit status.DESCRIPTION, both vignettes) from Cercospora zeae-maydis /
Cercospora zeicola on maize to Magnaporthe oryzae — "grayleafspotr" is
a package name, not a claim about the maize pathogen complex.grayleafspotr-workflow vignette
linking to related datasets and software by the same author.launch_grayleafspotr(), inst/shiny/) and
its deployment infrastructure (Dockerfile, render.yaml,
.dockerignore). It was unused legacy functionality; all package
functionality remains available through the R API.plot_grayleafspot_overlay(), which uses EBImage to draw the
detected dish boundary, colony outline, and crack segments on the source
plate photograph, for visual QC of the segmentation pipeline.Depends bumped to R (>= 4.6.0) to match the current Bioconductor devel
R pairing; added BiocType: Software.Authors@R and an inst/CITATION file.grayleafspot_download_model() now caches via BiocFileCache instead of
tools::R_user_dir() + download.file().suppressWarnings() calls to specifically-matched
warnings; renamed an internal function exceeding the 30-character lintr
limit; replaced a fixed -1:1 range with an explicit vector; documented
the previously-undocumented internal example_grayleafspot_dir().BiocStyle::html_document, all chunks labeled,
sessionInfo() added to getting-started.Rmd, and the previously-disabled
"analyze your own images" / "reload saved results" chunks now run for real
against the bundled 06FEB test images (gated so environments without a
working Python/basilisk setup degrade gracefully).\donttest{} wrappers with plain runnable code in four man pages
(launch_grayleafspotr, write_grayleafspot_results,
grayleafspot_python_available, grayleafspot_python_executable) so that
BiocCheck counts them toward the required 80% runnable-examples threshold.
launch_grayleafspotr uses an if (interactive()) guard;
grayleafspot_python_executable uses tryCatch() to handle environments
where Python is absent without aborting the check.@examples to all 18 exported man pages to satisfy the
Bioconductor BiocCheck requirement (>= 80% of pages must have examples).
Functions requiring Python or a network connection use \donttest{};
pure-R functions use the bundled example_grayleafspot_results() data.\dontrun{} to \donttest{} in launch_grayleafspotr() man page
(BiocCheck does not count \dontrun{} as a runnable example).crack_coverage to crack_coverage_pct in vignette
result subsets to match the actual output column from read_grayleafspot_results()
(#1).launch_grayleafspotr() to the pkgdown reference index to resolve a
build error when exported topics were absent from _pkgdown.yml.Initial release.
inst/python/pipeline/analysislocal.py)
running inside rvenv_arm_311 (ARM64 Python 3.11).models/best_area_w_0.7.pt; downloaded automatically from
HuggingFace via grayleafspot_download_model() when not present locally.plate_diameter_mm).grayleafspot_analyze() — run the pipeline on a folder of plate images.grayleafspot_python_available() / grayleafspot_python_executable() —
check and resolve the Python interpreter for rvenv_arm_311.grayleafspot_download_model() — fetch best_area_w_0.7.pt from HuggingFace
and cache to tools::R_user_dir("grayleafspotr", "cache").read_grayleafspot_results() / write_grayleafspot_results() — load and
save run directories (JSON + CSV + manifest).as_grayleafspot_growth_data() — coerce a run to a tidy tibble.example_grayleafspot_results() — load the built-in example run without
running the pipeline.plot_colony_expansion() — equivalent radius over time.plot_growth_roughness() — relative growth rate and edge roughness.plot_stress_remodeling() — crack coverage and crack count.plot_texture_organization() — Shannon entropy and center-to-edge delta.plot_shape_vs_stress() — eccentricity vs crack coverage scatter.plot_radial_growth_area() — colony area and radial growth by plate (faceted);
connects points across time even when each plate appears only once.plot_feature_heatmap() — Pearson correlation heatmap of numeric features.plot_radial_profile() — radial intensity profile; auto-discovers the most
recent analysis.json under outputs/ when given a plain data frame.inst/extdata/testdata/06FEB/ for offline
testing and vignette examples (original photographs, Apache License 2.0).inst/extdata/example/ (JSON, CSV, manifest).man/).tests/testthat/test-pipeline.R; skip gracefully when
Python or the model is not available.inst/COPYRIGHTS enumerating copyright and license for every non-R asset.NOTICE file in the package root (Apache 2.0 requirement).