Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
f80b261
Register cellposev4 in benchmark run scripts
dariarom94 Jul 19, 2026
1a2fa09
fix anndata version mismatch with txsim
dariarom94 Jul 19, 2026
82add80
add segger to workflow (test)
dariarom94 Jul 19, 2026
53e1728
duplicates when FOV stiching cleaned up
dariarom94 Jul 19, 2026
1186b7a
chunks issue atera
dariarom94 Jul 20, 2026
18644d7
segger update image
dariarom94 Jul 20, 2026
ecb302d
claude fix for segger
dariarom94 Jul 20, 2026
7d66898
Merge branch 'main' into fixes
dariarom94 Jul 20, 2026
d400ebe
atera version fix
dariarom94 Jul 20, 2026
64d7b4e
wf for the custom rnaseq scripts
dariarom94 Jul 20, 2026
3edfbf1
adjust the loader image name
dariarom94 Jul 20, 2026
cbd2f12
adjust the memory
dariarom94 Jul 20, 2026
184260e
troubleshootig edges
dariarom94 Jul 20, 2026
9fa9a33
Merge branch 'main' into fixes
dariarom94 Jul 20, 2026
36631c4
segger update
dariarom94 Jul 21, 2026
0626127
cell type label correction
dariarom94 Jul 21, 2026
3186435
fix boundaries
dariarom94 Jul 21, 2026
d8a7d93
Merge branch 'main' into fixes
dariarom94 Jul 21, 2026
3505718
OOM fixes
dariarom94 Jul 21, 2026
d6e110a
fix code
dariarom94 Jul 21, 2026
4660f26
RCTD
dariarom94 Jul 21, 2026
5abd651
segger to RAPIDS
dariarom94 Jul 21, 2026
fe2e90a
Merge branch 'main' into fixes
dariarom94 Jul 21, 2026
0b23474
fix rctd
dariarom94 Jul 22, 2026
196ff1f
segger debug (torchvision)
dariarom94 Jul 22, 2026
4be7bd4
Merge branch 'main' into fixes
dariarom94 Jul 22, 2026
b8d3d7b
save the xenium version
dariarom94 Jul 22, 2026
202ac49
add atera to datasets
dariarom94 Jul 22, 2026
14be8d0
Add gene efficiency correction as a separate pipeline stage (#183)
dariarom94 Jul 22, 2026
0cf0243
moscot to pca and segger troubleshooting
dariarom94 Jul 22, 2026
d7afb84
added fastreseg
dariarom94 Jul 23, 2026
f87a1d9
segger bug new fix
dariarom94 Jul 23, 2026
123e112
fastreseg to workflow
dariarom94 Jul 23, 2026
7549589
add fastreseg test
dariarom94 Jul 23, 2026
9fa9604
Merge branch 'main' into fixes
dariarom94 Jul 23, 2026
ff04467
optimized fastreseg build
dariarom94 Jul 23, 2026
7ffc514
Merge branch 'main' into fixes
dariarom94 Jul 23, 2026
a7404d8
add s3 paths
dariarom94 Jul 23, 2026
19e5f83
troubleshoot comseg/segger
dariarom94 Jul 24, 2026
aaca151
segger update
dariarom94 Jul 25, 2026
c9bdb91
data loader bug
dariarom94 Jul 25, 2026
1df9834
Merge branch 'main' into fixes
dariarom94 Jul 25, 2026
4467d32
rctd adjustment (raw counts)
dariarom94 Jul 26, 2026
58912e4
fix segger and comseg
dariarom94 Jul 26, 2026
0a5aa99
optimize cosmx
dariarom94 Jul 26, 2026
298e666
Merge branch 'main' into fixes
dariarom94 Jul 26, 2026
c921937
parameter test for cellpose4
dariarom94 Jul 26, 2026
57c2d79
add atera
dariarom94 Jul 26, 2026
cf67e09
add a test in pciseq and dynamic memory for bruker
dariarom94 Jul 27, 2026
9f71692
add test to vizgen data
dariarom94 Jul 28, 2026
d795f33
Merge branch 'main' into fixes
dariarom94 Jul 28, 2026
fefaadc
param sweep
dariarom94 Jul 28, 2026
4dc08d3
add params to segmentation
dariarom94 Jul 28, 2026
e9505f1
adjust segger mem
dariarom94 Jul 29, 2026
3a155be
update fastreseg to tacco
dariarom94 Jul 29, 2026
acdd6c7
Add annotation + expression-correction parameter sweeps (rctd, ssam, …
dariarom94 Jul 30, 2026
fa462b8
Add moscot + split parameter sweeps (annotation, expression correction)
dariarom94 Jul 30, 2026
fd37aee
singler: read par['celltype_key'] instead of hardcoding "cell_type"
dariarom94 Jul 30, 2026
3449bd0
fastreseg
dariarom94 Jul 30, 2026
331d219
Merge branch 'main' into fixes
dariarom94 Jul 30, 2026
5961d0a
adjust labels
dariarom94 Jul 30, 2026
857e16a
bruker nsclc
dariarom94 Jul 31, 2026
54f023e
adjust bruker nsclc loader
dariarom94 Jul 31, 2026
6e8b9ea
setup
dariarom94 Jul 31, 2026
4eec493
Merge branch 'main' into fixes
dariarom94 Jul 31, 2026
44ad7af
method correction
dariarom94 Jul 31, 2026
b351148
Merge branch 'main' into fixes
dariarom94 Jul 31, 2026
2b8177c
pin anndata
dariarom94 Aug 1, 2026
6c16707
mirror nsclc
dariarom94 Aug 1, 2026
5618fb8
sync the vizgen files
dariarom94 Aug 2, 2026
b68c100
adjust mem for allen brain
dariarom94 Aug 2, 2026
98dbc69
claude notes
dariarom94 Aug 2, 2026
fa23294
claude notes
dariarom94 Aug 2, 2026
ac9492c
fix mirror script
dariarom94 Aug 2, 2026
26d292e
Merge branch 'main' into fixes
dariarom94 Aug 2, 2026
1ee371a
adapt fastreseg requirements
dariarom94 Aug 3, 2026
c53016a
merscope kuppe script update
dariarom94 Aug 3, 2026
d479db6
fix nsclc loader
dariarom94 Aug 3, 2026
6c54220
adjust mem for new test resources
dariarom94 Aug 4, 2026
9494fc5
adjust the nsclc loader for test resources
dariarom94 Aug 4, 2026
a459afc
change processor to avoid spatialdata 0.8.0 bug
dariarom94 Aug 4, 2026
8f7b0c1
pin spatialdata version
dariarom94 Aug 4, 2026
f18296b
memory fix
dariarom94 Aug 5, 2026
fc96dcb
Merge branch 'main' into fixes
dariarom94 Aug 5, 2026
e75042f
subsampling code
dariarom94 Aug 5, 2026
594bb25
remove unexisting dataset
dariarom94 Aug 5, 2026
90207aa
fix data extraction bag
dariarom94 Aug 5, 2026
a94ec38
transcript assignment edits
dariarom94 Aug 5, 2026
905b166
segger: simplify transcript-assignment OOB handling to an edge clamp
dariarom94 Aug 5, 2026
b368d5e
modify proseg (param sweep)
dariarom94 Aug 5, 2026
0f57e2f
add scale0
dariarom94 Aug 6, 2026
5f09575
Merge branch 'main' into fixes
dariarom94 Aug 6, 2026
c64f7d2
fix code bug
dariarom94 Aug 6, 2026
7317d57
expand test dataset space
dariarom94 Aug 6, 2026
fe3ad75
Merge branch 'main' into fixes
dariarom94 Aug 6, 2026
a0a3d43
fix stardist params
dariarom94 Aug 6, 2026
6669752
process_dataset: opt-in tissue-centered crop (fixes ABCA whole-brain …
dariarom94 Aug 6, 2026
cc07559
memory adjust
dariarom94 Aug 6, 2026
fcda921
stardist tiling error
dariarom94 Aug 6, 2026
f26d173
Merge branch 'main' into fixes
dariarom94 Aug 6, 2026
4af3df3
fix labels
dariarom94 Aug 6, 2026
27ec16d
params for test datasets
dariarom94 Aug 6, 2026
76f4e80
add singler param sweep
dariarom94 Aug 6, 2026
6171f0c
yamls with params - wude
dariarom94 Aug 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 64 additions & 0 deletions scripts/run_benchmark/param_sweep/baysor_params.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Parameter sweep for the baysor transcript-assignment method.
# Committed source of truth, read at runtime from GitHub via a raw URL by
# run_test_baysor_nebius.sh (the Nebius compute env pulls the repo but cannot see the
# launch host's local files).
#
# Consumed by the run_benchmark workflow via the `method_parameters_yaml` setting
# (src/workflows/run_benchmark/main.nf). For every method the workflow builds:
# * one "default" variant using the `default:` args below, and
# * one extra variant per value in each `sweep:` list, with that ONE arg overridden.
# The benchmark varies a SINGLE parameter at a time (a "star" around the default, not
# a full grid), so total baysor variants = 1 default + sum(sweep list lengths) = 11.
#
# See src/methods_transcript_assignment/baysor/NOTES.md ("Optimization / tuning") for the
# tiers and rationale.
#
# WHAT BAYSOR ACTUALLY VARIES HERE: baysor runs Baysor v0.7.1 through sopa
# (sopa.segmentation.baysor). It re-segments transcripts starting from the upstream
# segmentation, fed in as a per-transcript prior. Coordinates are in ~1 um/px global space, so
# `scale` (Baysor's typical cell radius) is effectively in um. `scale = -1.0` is the sentinel
# for "estimate the radius from min_molecules_per_cell".
#
# NON-DEFAULT AUDIT (config default -> Baysor/sopa true default):
# * prior_segmentation_confidence: config 0.8 DEVIATES from Baysor default 0.2 (Baysor only
# recommends >0.7 when the prior is highly reliable) -> forced onto a sweep axis, walking
# back toward the tool default (0.2, and sopa's example 0.5).
# * min_molecules_per_cell: config 50 DEVIATES from sopa's example 10 (Baysor has no hard
# default) -> forced onto a sweep axis toward the smaller value.
# * scale: config -1.0 (auto-estimate) is a deliberate mode, not a tool default; swept to
# explicit um radii straddling sopa's example 6.25.
# * scale_std ("25%") and n_clusters (4) MATCH the Baysor defaults; probed lightly as Tier-2
# companion axes (default value omitted from each list, as required).
# * force_2d (true) matches sopa's default and the data is 2D -> left fixed (flipping to 3D is
# meaningless here). transcripts_key / coordinate_system are structural, not swept.
# Perf/resource knobs (patch_width/patch_overlap, JULIA_NUM_THREADS) are hardcoded, not swept.
#
# SUBMITTABLE-NOW: the Nebius launch runs `--revision build/main`, and every swept arg below is
# ALREADY exposed in src/methods_transcript_assignment/baysor/config.vsh.yaml today, so the
# build/main container accepts them with NO rebuild.
parameters:
baysor:
# Baseline == the component's shipped defaults.
default:
force_2d: true
min_molecules_per_cell: 50
scale: -1.0
scale_std: "25%"
n_clusters: 4
prior_segmentation_confidence: 0.8
sweep:
# ---- Tier 1: cell-size / recall levers (sharpest) ----
# scale: target cell radius in um (coords ~1 um/px). Default -1.0 = auto-estimate.
# Explicit radii straddling sopa's example 6.25 um; grounded in typical cell radii ~4-10 um.
scale: [5.0, 7.5, 10.0]
# min_molecules_per_cell: min molecules to call a cell; also drives the auto scale estimate.
# DEVIATES (config 50 vs sopa 10) -> walk toward the smaller, more permissive value.
min_molecules_per_cell: [10, 25]
# prior_segmentation_confidence: trust the prior vs re-segment (in [0,1]).
# DEVIATES (config 0.8 vs Baysor 0.2) -> walk back toward the tool default and sopa's 0.5.
prior_segmentation_confidence: [0.2, 0.5]
# ---- Tier 2: companion knobs at the Baysor default ----
# scale_std: prior std of cell radius, relative to scale. Default "25%" -> wider tolerance.
scale_std: ["50%"]
# n_clusters: number of molecule clusters (~ major cell types). Default 4; Baysor rec. 3-15.
n_clusters: [6, 8]
75 changes: 75 additions & 0 deletions scripts/run_benchmark/param_sweep/clustermap_params.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Parameter sweep for the clustermap (ClusterMap, He et al. 2021) transcript-assignment method.
# Committed source of truth, read at runtime from GitHub via a raw URL by
# run_test_clustermap_nebius.sh (the Nebius compute env pulls the repo but cannot see the
# launch host's local files).
#
# Consumed by the run_benchmark workflow via the `method_parameters_yaml` setting
# (src/workflows/run_benchmark/main.nf). For every method the workflow builds:
# * one "default" variant using the `default:` args below, and
# * one extra variant per value in each `sweep:` list, with that ONE arg overridden.
# The benchmark varies a SINGLE parameter at a time (a "star" around the default, not a full
# grid), so total clustermap variants = 1 default + sum(sweep list lengths) = 14.
#
# See src/methods_transcript_assignment/clustermap/NOTES.md ("Optimization / tuning") for the
# tiers, the ClusterMap-source audit, and the inert-arg findings.
#
# WHAT CLUSTERMAP ACTUALLY VARIES HERE: ClusterMap is segmentation-free — it density-peak-
# clusters the RNA spots (+ injected DAPI points) into cells. The swept knobs are the levers
# that reach the tool AND change the output, confirmed by reading script.py and the upstream
# ClusterMap source:
# xy_radius (spot-neighbourhood radius, px), cell_num_threshold (DPC cell-count threshold),
# dapi_grid_interval (DAPI-point density), min_spot_per_cell (small-cell filter),
# pct_filter (low-density spot removal), gauss_blur (DAPI blur on/off).
#
# NON-DEFAULT AUDIT vs ClusterMap true defaults: three config defaults DEVIATE from the tool
# and are therefore forced onto sweep axes (each list walks that arg back TOWARD its tool
# default, since the default variant already covers the shipped value):
# gauss_blur True -> tool False (sweep [false])
# pct_filter 0.0 -> tool 0.1 (sweep toward 0.1)
# cell_num_threshold 0.1 -> tool 0.01 (sweep toward 0.01)
# A fourth deviation, `contamination` (0 -> tool 0.1), is DEAD CODE while LOF=False (the shipped
# default) and sklearn's LocalOutlierFactor rejects contamination=0, so LOF/contamination form a
# coupled, unsafe pair in the star model and are NOT swept (see NOTES.md). `window_size` (700) is
# a memory/perf tiling knob, not a ClusterMap parameter, so it is left fixed.
#
# INERT config args EXCLUDED from the sweep (they never reach ClusterMap): `use_dapi` (never read
# by script.py), `add_dapi` and `use_genedis` (both overwritten by par["xy_radius"] via a script
# bug). Sweeping any of them would just produce duplicate variants. Documented in NOTES.md.
#
# SUBMITTABLE-NOW: the Nebius launch runs `--revision build/main`, so the sweep touches ONLY args
# already exposed + correctly forwarded in the build/main container -- all six below exist in
# src/methods_transcript_assignment/clustermap/config.vsh.yaml today, so no rebuild is needed.
parameters:
clustermap:
# Baseline == the component's shipped defaults (the "default variant").
default:
window_size: 700
xy_radius: 40
z_radius: 0
fast_preprocess: false
gauss_blur: true
sigma: 1.0
pct_filter: 0.0
LOF: false
contamination: 0
min_spot_per_cell: 5
dapi_grid_interval: 5
cell_num_threshold: 0.1
sweep:
# ---- Tier 1: sharpest quality levers ----
# xy_radius: spot-neighbourhood radius in PIXELS (~1 um/px grid). Default 40 is large vs
# typical cell radii; straddle tighter and looser neighbourhoods.
xy_radius: [20, 30, 60]
# cell_num_threshold: DPC cell-count threshold, "larger -> more cells". DEVIATION (0.1 vs
# tool 0.01); 0.01 = tool default (fewer/larger cells), 0.2 = more/smaller cells.
cell_num_threshold: [0.01, 0.05, 0.2]
# dapi_grid_interval: density of injected DAPI points; smaller = denser/slower.
dapi_grid_interval: [3, 10]
# min_spot_per_cell: min transcripts to keep a cell; higher deletes small clusters.
min_spot_per_cell: [10, 20]
# ---- Tier 2: quality knobs / must-sweep deviations ----
# pct_filter: low-density spot removal. DEVIATION (0.0 removes nothing vs tool 0.1); walk up.
pct_filter: [0.05, 0.1]
# gauss_blur: DAPI blur before binarising. DEVIATION (True vs tool False); boolean -> the
# single non-default value is the tool default False.
gauss_blur: [false]
74 changes: 74 additions & 0 deletions scripts/run_benchmark/param_sweep/comseg_params.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Parameter sweep for the comseg (ComSeg, Python/sopa) transcript-assignment method.
# Committed source of truth, read at runtime from GitHub via a raw URL by
# run_test_comseg_nebius.sh (the Nebius compute env pulls the repo but cannot see the
# launch host's local files).
#
# Consumed by the run_benchmark workflow via the `method_parameters_yaml` setting
# (src/workflows/run_benchmark/main.nf). For every method the workflow builds:
# * one "default" variant using the `default:` args below, and
# * one extra variant per value in each `sweep:` list, with that ONE arg overridden.
# The benchmark varies a SINGLE parameter at a time (a "star" around the default, not
# a full grid), so total comseg variants = 1 default + sum(sweep list lengths) = 13.
#
# See src/methods_transcript_assignment/comseg/NOTES.md ("Optimization / tuning") for the
# tiers and rationale.
#
# WHAT COMSEG ACTUALLY VARIES HERE: comseg runs sopa's ComSeg wrapper, which hands a config
# dict to the ComSeg point-cloud clustering algorithm (Defard et al., Comms Biol 2024). The
# component exposes exactly six SCIENCE knobs of that dict (mean_cell_diameter, max_cell_radius,
# alpha, min_rna_per_cell, norm_vector, allow_disconnected_polygon); the other config knobs
# (patch_width/overlap/transcript_patch_width, n_workers, worker_memory_limit) are memory/perf
# and resource knobs, and gene_column/transcripts_key/coordinate_system are structural, so none
# of those is swept.
#
# NON-DEFAULT AUDIT (vs sopa's own _get_default_config, the tool baseline): TWO component
# defaults deviate from the tool default and neither is a perf/resource knob, so each is FORCED
# onto a sweep axis --
# * allow_disconnected_polygon: component TRUE vs sopa False -> sweep the flip (false).
# * min_rna_per_cell: component 5 vs sopa 20 -> sweep walks 5 back toward 20.
# The other four (mean_cell_diameter=15, max_cell_radius=25, alpha=0.5, norm_vector=false) sit at
# or near sopa's defaults but are the algorithm's core science levers, so they are swept too.
#
# SUBMITTABLE-NOW: the Nebius launch runs `--revision build/main`, so the sweep touches ONLY
# args already exposed in the build/main container -- all six knobs below already exist in
# src/methods_transcript_assignment/comseg/config.vsh.yaml today, so NO rebuild is needed.
# ComSeg's deeper clustering knobs (co-expression graph n_neighbors, k_nearest_neighbors,
# leiden resolution, min_nb_rna_patch) are NOT plumbed through the component config dict at all
# (ComSeg/sopa use their own defaults); exposing them would need a config arg + container
# rebuild, so they are documented in NOTES.md as future work and NOT here.
parameters:
comseg:
# Baseline == the component's shipped defaults (the six exposed ComSeg science knobs).
default:
mean_cell_diameter: 15.0
max_cell_radius: 25.0
alpha: 0.5
min_rna_per_cell: 5
norm_vector: false
allow_disconnected_polygon: true
sweep:
# ---- Tier 1: cell-size geometry (µm), the sharpest levers on what gets grouped ----
# mean_cell_diameter: expected mean cell diameter in µm; sets the graph scale ComSeg
# builds neighborhoods on. Shipped 15µm (a typical mammalian cell). Straddle smaller /
# larger tissue cells. (sopa's true default DERIVES this from the prior-segmentation
# areas; the component instead pins 15µm.)
mean_cell_diameter: [10.0, 20.0]
# max_cell_radius: max centroid->RNA distance (µm) for association; caps how far a cell
# can reach out to claim transcripts. Shipped 25µm; sopa's rule-of-thumb is
# mean_cell_diameter*1.75 (~26µm at 15µm), the ComSeg docs example uses 50µm. Walk from
# tighter (20) up toward the docs value (50).
max_cell_radius: [20.0, 37.5, 50.0]
# alpha: alphashape parameter (0..1) for the cell polygon; 1 == convex hull, lower ==
# tighter/more concave boundary hugging the points. Shipped 0.5. Sweep tighter, looser,
# and full convex hull.
alpha: [0.25, 0.75, 1.0]
# min_rna_per_cell: minimum transcripts for a cell to be kept. Shipped 5 (relaxed);
# sopa's default is 20. NON-DEFAULT AUDIT -> walk 5 back toward the sopa default 20
# (stricter = fewer, more confident cells).
min_rna_per_cell: [10, 20]
# norm_vector (bool): normalize the per-cell expression vectors before the co-expression
# graph / clustering. Shipped false (== sopa default). Boolean -> one flip.
norm_vector: [true]
# allow_disconnected_polygon (bool): allow a cell's boundary to be a multi-part polygon.
# Shipped true; sopa's default is false. NON-DEFAULT AUDIT -> sweep the flip (false).
allow_disconnected_polygon: [false]
65 changes: 65 additions & 0 deletions scripts/run_benchmark/param_sweep/fastreseg_params.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Parameter sweep for the fastreseg (FastReseg, R) transcript-assignment method.
# Committed source of truth, read at runtime from GitHub via a raw URL by
# run_test_fastreseg_nebius.sh (the Nebius compute env pulls the repo but cannot see the
# launch host's local files).
#
# Consumed by the run_benchmark workflow via the `method_parameters_yaml` setting
# (src/workflows/run_benchmark/main.nf). For every method the workflow builds:
# * one "default" variant using the `default:` args below, and
# * one extra variant per value in each `sweep:` list, with that ONE arg overridden.
# The benchmark varies a SINGLE parameter at a time (a "star" around the default, not
# a full grid), so total fastreseg variants = 1 default + sum(sweep list lengths) = 11.
#
# See src/methods_transcript_assignment/fastreseg/NOTES.md ("Optimization / tuning") for the
# tiers and rationale.
#
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# NEEDS REBUILD (unlike the other six sibling sweeps, this one is NOT submittable as-is):
# these four knobs did NOT exist as Viash args until this change — they were HARDCODED inside
# script.R's fastReseg_full_pipeline(...) call. Exposing them adds four `--...` args to
# config.vsh.yaml + wires them through orchestrator.sh -> script.R. The `build/main` container
# run by run_test_fastreseg_nebius.sh's `--revision build/main` will REJECT these args until
# the component is rebuilt. Before launching you MUST:
# 1. commit + push this file AND the config/orchestrator/script.R edits,
# 2. `viash ns build` (regenerate target/) and rebuild the fastreseg container on ghcr
# with the build_main tag (see the check-component skill), then
# 3. launch. Otherwise every fastreseg variant fails with an "unknown option" error.
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#
# NON-DEFAULT AUDIT: every hardcoded value in script.R exactly matched FastReseg's TRUE package
# default for fastReseg_full_pipeline() (pixel_size 0.18, zstep_size 0.8,
# molecular_distance_cutoff 2.7, flagCell_lrtest_cutoff 5, svmClass_score_cutoff -2,
# groupTranscripts_method "dbscan", spatialMergeCheck_method "leidenCut", cutoff_spatialMerge
# 0.5, all NULL cutoffs). So NONE was a pre-tuned deviation demanding a sweep axis; the config
# defaults below are set to those same package defaults and the sweep walks each knob AWAY from
# its default in both directions.
#
# NOT SWEPT (documented in NOTES.md): pixel_size / zstep_size are Tier-0 dataset-physical
# geometry constants (still hardcoded, not exposed); groupTranscripts_method /
# spatialMergeCheck_method are Tier-2/3 categorical toggles (hardcoded). The four swept below
# are the Tier-1 error-detection / correction levers.
parameters:
fastreseg:
# Baseline == FastReseg's own package defaults (previously hardcoded in script.R).
default:
molecular_distance_cutoff: 2.7
flagCell_lrtest_cutoff: 5
svmClass_score_cutoff: -2
cutoff_spatialMerge: 0.5
sweep:
# ---- Tier 1: molecular neighborhood distance (SHARPEST lever) ----
# Max molecule-to-molecule distance (um) for grouping transcripts into candidate cells.
# Default 2.7; smaller => tighter/more fragmented groups, larger => looser groups that
# may merge neighbouring cells. Widest sweep (4 values straddling 2.7).
molecular_distance_cutoff: [1.5, 2.0, 3.5, 4.0]
# ---- Tier 1: cell-flagging aggressiveness ----
# lrtest_nlog10P cutoff to flag putative mis-segmented cells. Default 5; LOWER flags more
# cells for re-segmentation (aggressive correction), HIGHER is conservative.
flagCell_lrtest_cutoff: [3, 8]
# ---- Tier 1: transcript high/low-score class boundary (SVM) ----
# Transcript-score cutoff separating high vs low score classes. Default -2; straddle it.
svmClass_score_cutoff: [-3, -1]
# ---- Tier 1: spatial-merge constraint ----
# Fractional (0-1) spatial constraint for accepting a group-merge event. Default 0.5;
# lower is stricter (fewer merges), higher is more permissive.
cutoff_spatialMerge: [0.3, 0.7]
Loading
Loading