First CRAN submission release. Addresses all reviewer feedback from the initial check, introduces a built-in test dataset, completes function documentation, and extends the test suite. Package structure has been overhauled to follow established CRAN bioinformatics conventions.
Added reference URL to the
Description field of DESCRIPTION
(<https://github.com/zhaoqing-wang/scPairs>), as
required.
Added \value tags to all three
exported print() S3 methods
(print.scPairs_result,
print.scPairs_gene_result,
print.scPairs_pair_result); each returns its input object
invisibly.
Rationalised examples: nine exported functions
now run plain R examples during R CMD check. Two functions
(AssessGenePair, PlotPairSummary) are wrapped
in \donttest{} because their examples exceed the
five-second threshold on the check servers. Three functions retain
\dontrun{} because they require software not guaranteed to
be present: PlotPairSpatial (spatial-assay Seurat object),
PlotBridgeNetwork and PlotPairSynergy
(Bioconductor annotation packages org.Hs.eg.db /
org.Mm.eg.db).
Removed set.seed() from inside
.plot_bridge_network_enhanced()
(R/plot_synergy.R); the package no longer modifies the
user’s RNG state.
Fixed Unicode in documentation: replaced
non-ASCII characters (U+2248 approximately-equal, U+00D7 multiplication
sign, U+2013/U+2014 dashes) in scpairs_testdata Rd
documentation with ASCII equivalents, resolving the LaTeX PDF-manual
build error.
Fixed invalid URI in README.md: the
LICENSE.md hyperlink now points to the full GitHub URL
rather than a bare file path, removing the URI validity note.
Added inst/WORDLIST listing
domain-specific terms (Jaccard, KEGG, KNN, midcorrelation,
transcriptomics, etc.) to suppress false-positive spell-check
notes.
New dataset scpairs_testdata
(data/scpairs_testdata.rda, 26 KB): a synthetic Seurat
object (100 cells, 20 genes, 3 balanced clusters, 5-component PCA, 2-D
UMAP) with two injected co-expression patterns:
Generation script provided in
data-raw/make_testdata.R (set.seed(7391));
data-raw/ is excluded from the CRAN build via
.Rbuildignore.
All runnable examples reference scpairs_testdata
directly, eliminating the need for inline Seurat-object construction in
any function documentation.
Dataset documented in R/scpairs_testdata.R with
@format, @details, @usage,
@source, @seealso, and
@family Section_0_Data tags.
Completed documentation for
PlotPairSummary() (added @examples, improved
@return) and PlotPairSynergy() (added
@examples with \dontrun{}, expanded
@return for all four panels).
Added @family tags grouping all
exported functions into three help families:
Section_0_Data – scpairs_testdataSection_1_Discovery – FindAllPairs,
FindGenePairs, AssessGenePairSection_2_Visualization – all eleven
PlotPair* and PlotBridgeNetwork functionsAdded @seealso cross-references
throughout, linking each function to its most closely related
counterparts.
Improved @return descriptions for
PlotPairDimplot, PlotPairViolin,
PlotPairScatter, PlotPairSmoothed,
PlotPairSummary, PlotPairCrossType,
PlotPairSpatial, PlotPairNetwork, and
PlotPairHeatmap.
R/data.R renamed to
R/scpairs_testdata.R, following the convention of naming
dataset documentation files after the dataset itself.
tests/README.md added: documents test categories,
expected behaviour, coverage targets, and a contribution
template.
Six demonstration plots saved to docs/ from
scpairs_testdata: scpairs_network.png,
scpairs_heatmap.png, scpairs_dimplot.png,
scpairs_smoothed.png, scpairs_violin.png,
scpairs_scatter.png.
README.md restructured: CRAN/GitHub badges,
right-aligned logo, full table of contents, collapsible dependency
section, Visualization Gallery embedding the six demo images, and an
expanded Functions reference table.
All seven test files updated to use scpairs_testdata
directly, removing per-test Seurat pipeline construction and improving
reproducibility. create_test_seurat() is retained in
helper-test_data.R for edge-case tests requiring custom
configurations (single-cluster data, spatial coordinates, unusual gene
counts).
Two latent test warnings resolved:
test-assess-pair.R: the n_perm = 49 call
is now wrapped in suppressWarnings() – the low-permutation
advisory is intentional package behaviour, not a test defect.test-consolidated-functions.R: the third matrix row in
the .compute_ratio_consistency batch test now uses
abs(rnorm(n)) to prevent log2(mat + 1) from
receiving negative inputs.115 tests passing, 0 failures, 0 warnings, 0 skips.
New exported function
PlotBridgeNetwork(): standalone bridge gene
network for a focal gene pair. Nodes are positioned via MDS on Jaccard
pathway distance; radial depth reflects shared-term count; focal genes
appear at the centre. Bridge gene nodes are sized by bridging strength
and filled by mean expression (viridis palette). Focal-to-bridge edges
are coloured by source gene (red/blue) and scaled in width by shared
term count; dotted inter-bridge edges encode pairwise Jaccard
similarity. Supports a layout parameter and configurable
sim_threshold, pt_size_range, and
edge_width_range.
Refactored
.plot_bridge_network_enhanced(): replaces the
prior static circular layout with MDS-radial positioning; adds weighted
edges, expression-coded fill, duplicate-edge deduplication, and
bridge-bridge similarity overlay.
PlotPairSynergy() panel 2 now calls
.plot_bridge_network_enhanced().
Shared metric engine
(compute_metrics.R): all three discovery functions now
share a single .compute_pair_metrics() backend, eliminating
approximately 600 lines of duplicated code.
mode parameter added to all
discovery functions: "all" (default),
"expression", "prior_only".
Unified output format:
AssessGenePair() now returns a $pairs
data.table with the same column schema as FindAllPairs()
and FindGenePairs(). All visualisation functions accept any
of the three result classes interchangeably.
Removed pheatmap from
Suggests (unused dependency).
Internal helpers added:
.resolve_cluster_ids(), .extract_pair_vals(),
.extract_pairs_df().
Prior knowledge layer: prior_score
(GO/KEGG Jaccard co-annotation, weight 2.0) and
bridge_score (pathway bridge genes, weight 1.8).
New metric neighbourhood_synergy
(weight 1.5).
New visualisation
PlotPairSynergy(): 6-panel evidence
dashboard.
Package now integrates 14 metrics across 5 evidence layers.
use_prior, organism, and
custom_pairs parameters added to all three main discovery
functions.
min_pct_expressed filter added to exclude sparse genes
from analysis.schema.R) and shared plot utilities
(plot_utils.R).cross_celltype_score:
measures trans-cellular synergy between cell populations (weight
1.5).PlotPairCrossType():
cross-cell-type interaction heatmap.smoothed_cor,
neighbourhood_score, cluster_cor.PlotPairSmoothed(),
PlotPairSummary().FindAllPairs(),
FindGenePairs(), AssessGenePair().