SPACER
FinderSequencesJobsDocsContact

Search documentation

Search all SPACER documentation pages

GitHub
IntroductionQuick Start
OverviewEnzyme FamiliesPAM SequencesNomenclature
Cas12 FinderCas13 FinderMSA Guide DesignBADGERS OptimizerOptimizer Configuration
RPA PrimersExport FormatsMulti-Target ScoringSignal Ratio FilteringReference Genomes
spacer-webv0.1.0
Output & Screening›Signal Ratio Filtering

Signal Ratio Filtering

Quality-controlled coverage filtering that removes marginally active variants using a signal-to-noise ratio gate.

Overview

Signal ratio filtering is an optional second gate applied on top of the activity threshold during variant coverage analysis. It ensures that only variants producing a strong detection signal relative to the on-target reference are counted as covered, filtering out variants where the ML model predicts marginal activity that may not translate to reliable detection in a real assay.

The Problem: Inflated Coverage

Without signal ratio filtering, any variant with predicted activity above the threshold counts as covered. This can inflate coverage statistics when a guide produces marginally active predictions for certain variants — activity scores that technically exceed the threshold but are far below the guide's on-target performance.

For diagnostic assays, a variant that produces 10% of the on-target signal may be undetectable in practice despite passing the absolute activity threshold. This is particularly problematic for SHERLOCK and DETECTR assays where signal intensity directly determines the test's limit of detection.

Signal Ratio Cutoff

The signal ratio for a variant is defined as:

text
signal_ratio = variant_activity / on_target_mean_activity

Where on_target_mean_activity is the mean predicted activity of the guide against the reference (on-target) sequences. The signal_ratio_cutoff parameter sets the minimum ratio required for a variant to count as covered.

PropertyValue
Parametersignal_ratio_cutoff
Range0.0–1.0
DefaultNone (disabled)
EffectVariants must achieve at least this fraction of on-target activity to be classified as covered

How It Works

When signal ratio filtering is enabled, each variant undergoes a two-stage classification:

ConditionSignal ClassCounted as Covered?
Activity > threshold AND ratio ≥ cutoffhigh_signalYes
Activity > threshold AND ratio < cutofflow_signalNo
Activity ≤ thresholdbelow_thresholdNo
Variant skipped (e.g., gapped)skippedNo (excluded from denominator)

Only high_signal variants count toward the coverage fraction. Low-signal variants are tracked separately in the low_signal_variants count so you can see how many variants were excluded by the ratio gate.

Warning
When on_target_mean_activity is zero or negative, the signal ratio gate is automatically bypassed — all variants passing the activity threshold are classified as high-signal. This prevents division-by-zero artifacts when the guide has no on-target activity data.

Configuration

Signal ratio filtering is configured via the signal_ratio_cutoff field in the variant analysis configuration. When set to null (the default), no ratio filtering is applied and all variants above the activity threshold are considered covered.

json
{
  "variant_config": {
    "activity_threshold": 0.0,
    "min_coverage_fraction": 0.95,
    "signal_ratio_cutoff": 0.6
  }
}

In this example, a variant must produce at least 60% of the on-target mean activity to count as covered. A guide with on-target mean activity of 3.5 on the shifted scale would require each variant to score at least 3.5 \u00D7 0.6 = 2.1 to be classified as high-signal.

Per-Variant Output

When signal ratio filtering is active, each variant in the results includes additional fields:

FieldTypeDescription
signal_rationumber | nullThe variant’s activity divided by on-target mean; null when filtering is disabled
signal_classstringClassification: high_signal, low_signal, below_threshold, or skipped

The aggregate coverage statistics also reflect the filtering:

FieldDescription
low_signal_variantsNumber of variants that passed activity threshold but failed the signal ratio cutoff
signal_ratio_cutoffThe cutoff value that was applied (echoed back for traceability)
coverage_fractionOnly counts high_signal variants in the numerator when filtering is active

Use Case: Diagnostic Assay Design

Signal ratio filtering is most valuable when designing diagnostic assays where false positives and false negatives are costly:

  • Point-of-care diagnostics — lateral flow assays have limited dynamic range; weak signals may be indistinguishable from background.
  • Multiplexed detection — cross-reactive guides with marginal activity on non-target strains inflate apparent coverage without reliable detection.
  • Regulatory submissions — analytical sensitivity claims require consistent signal across all claimed detectable variants.
Tip
A cutoff of 0.5 to 0.7 is a reasonable starting range. Lower values are more permissive; higher values demand near-reference performance from every variant. Start with 0.6 and adjust based on experimental validation of your assay's limit of detection.

Related

Signal ratio filtering builds on Multi-Target Scoring and is available in both manual scoring and the MSA Guide Design workflow. Coverage results feed into the Coverage & Specificity assay score component.

Output & Screening
Multi-Target Scoring
Output & Screening
Reference Genomes
ATCG GCTA TACG CGAT ATCG TAGC GCTA ATCG TACG CGAT ATCG GCTA TACG CGAT ATCG TAGC GCTA ATCG TACG CGAT ATCG GCTA TACG CGAT ATCG TAGC GCTA ATCG TACG CGAT ATCG GCTA TACG CGAT ATCG TAGC GCTA ATCG TACG CGAT ATCG GCTA TACG CGAT ATCG TAGC GCTA ATCG TACG CGAT ATCG GCTA TACG CGAT ATCG TAGC GCTA ATCG TACG CGAT ATCG GCTA TACG CGAT ATCG TAGC GCTA ATCG TACG CGAT ATCG GCTA TACG CGAT ATCG TAGC GCTA ATCG TACG CGAT
SPACER

Open-source CRISPR guide RNA design and scoring for Cas12 and Cas13 diagnostic systems.

Resources
FinderDocumentationChangelogContactGitHub
Developed atFiocruz Parana — Instituto Carlos Chagas

Fundacao Oswaldo Cruz - Parana

Instituto Carlos Chagas

© 2026 SPACER·v0.1.0
hwalflorGitHub