Skip to main content
Version: Next

Inhibition CT Rule (INH)

Version: v3.0.0 Status: Normative (text), Illustrative (diagrams only) Scope: INH rule for detecting potential inhibition via IC CT deviation from negative control baseline Domain: RULES-INHCT Precedence: Part of IC combined outcomes feature set


Statement

The system shall detect potential inhibition in PCR reactions by comparing Internal Control (IC) CT values against negative control baselines and flagging observations that exceed configured thresholds.

The INH rule evaluates IC-type observations against the average CT of valid negative controls for the same mix. When the CT delta exceeds the configured ct_inhibition_delta, the observation receives IC_FAILED. The rule supports fallback mixes when no negative controls exist for the original mix, respects role exclusion flags, and assigns IC_RULE_NO_NC_IN_RUN when no valid baseline can be established.


Quick Reference

IDCore BehaviorPriorityStatus
REQ-RULES-INHCT-001Flags IC observation when CT exceeds thresholdHIGHDraft
REQ-RULES-INHCT-002Calculates NC IC CT baseline with exclusionsHIGHDraft
REQ-RULES-INHCT-003Uses fallback mixes when original has no NCMEDIUMDraft
REQ-RULES-INHCT-004Excludes marked roles from IC delta checkMEDIUMDraft
REQ-RULES-INHCT-005Assigns NO NC IN RUN error when no baseline existsHIGHDraft

Key Integration Points: Target Configuration, Control Label Mapping, Run Import, Problem Code System

Rule Summary

PropertyValue
NameINH (Inhibition CT)
Feature SetQUEST new IC combined outcomes (Epic BT-3865)
TriggersWhen evaluating IC-type observations
OutputIC_FAILED problem or IC_RULE_NO_NC_IN_RUN error

Rule Flowchart (Illustrative)

This diagram illustrates the INH rule evaluation logic. NC selection, fallback resolution, and baseline calculation follow the paths shown.


Definitions

TermDefinition
IC (Internal Control)A control target type used to verify PCR reaction integrity
CT (Cycle Threshold)The cycle number at which fluorescence crosses the detection threshold
ct_inhibition_deltaConfigured threshold for maximum allowed CT deviation from baseline
NC (Negative Control)Control wells used to establish baseline CT values
NTC (No Template Control)A type of negative control without template DNA
Fallback ControlBackup mix controls used when primary mix lacks negative controls
IC_FAILEDProblem code indicating IC observation CT exceeds inhibition threshold
IC_RULE_NO_NC_IN_RUNError code indicating no usable negative controls for INH evaluation

Assumptions

  • Target configurations include ct_inhibition_delta values for IC-type targets
  • Control label mapping is configured with role definitions and exclusion flags
  • Run data includes well observations with CT values and target type assignments
  • Negative control wells are identifiable by role assignment

Requirements

Core INH Rule Evaluation (REQ-RULES-INHCT-001)

FR-INHCT-001: Flag IC Observation When CT Exceeds Inhibition Threshold

The system shall flag an IC observation with IC_FAILED problem when the observation CT exceeds the configured CT inhibition delta from the negative control IC CT average.

Acceptance Criteria

Core Threshold Logic:

  • Apply the formula: ABS([IC observation CT] - [NC IC CT average for same Mix]) > ct_inhibition_delta
  • Given a well with IC observation CT=20, negative control IC CT=25, and ct_inhibition_delta=4, the observation shall receive IC_FAILED problem (delta=5 > threshold=4)
  • Given an IC observation where the CT delta is within the threshold, no problem shall be assigned

Target Type Filtering:

  • Evaluate only observations associated with IC-type targets
  • Non-IC target observations shall not be evaluated by this rule
  • Given a well with non-IC target type observation, the observation shall not receive IC_FAILED problem regardless of CT values

Configuration Source:

  • The ct_inhibition_delta value shall be obtained from the target configuration

Trace: Source: 3.0.0-Inhibition_CT rule (Row 1, Row 4) | Jira: BT-3876, BT-3898 | Tests: See scenarios


Baseline Calculation (REQ-RULES-INHCT-002)

FR-INHCT-002: Calculate Negative Control IC CT Baseline

The system shall calculate the negative control IC CT baseline as the average of valid negative control IC CT values, excluding controls with errors or resolutions.

Acceptance Criteria

Average Calculation:

  • When multiple negative controls exist for a mix, their IC CT values shall be averaged
  • Given two negative controls with CT=25 and CT=23 for the same mix, the average CT=24 shall be used for comparison

Exclusion Rules:

  • Exclude controls with error status from the average calculation
  • Exclude controls with resolution status from the average calculation
  • Given negative controls where one has an error status, only non-error controls shall be included in the average
  • Given negative controls where one has a resolution status, only non-resolved controls shall be included in the average

Threshold Boundary:

  • Given a well with IC CT=20 and two valid negative controls with CT=25 and CT=23 (average=24), with ct_inhibition_delta=4, no problem shall be assigned (delta=4 equals threshold, not greater than)

Trace: Source: 3.0.0-Inhibition_CT rule (Row 2, Row 3) | Jira: - | Tests: See scenarios


Fallback Controls (REQ-RULES-INHCT-003)

FR-INHCT-003: Use Fallback Control Mixes for IC CT Baseline

The system shall use fallback control mixes for IC CT baseline calculation when no negative controls are available for the original mix.

Acceptance Criteria

Fallback Activation:

  • Fallback controls shall only be used when zero negative controls exist for the original mix
  • Given a control label mapping with backup mixes configured and no negative controls for the original mix, fallback mix controls shall be used for IC CT baseline calculation
  • The system shall obtain fallback mix definitions from the control label mapping configuration

Fallback Evaluation:

  • Given a well in Mix B with no Mix B negative controls but Mix A configured as backup with NC CT=30, and well observation IC CT=25 with ct_inhibition_delta=4, IC_FAILED shall be assigned (delta=5 > threshold=4)

Original Mix Priority:

  • When at least one negative control is available for the original mix, the system shall not use fallback controls
  • Given at least one negative control available for the original mix and fallback mixes configured, only original mix controls shall be used for baseline calculation
  • Given a well in Mix B with one Mix B negative control available, the result shall be based on original mix controls only (problem is null when within threshold)

Trace: Source: 3.0.0-INH Rule - Consider Fallback Controls (Row 1, Row 2) | Jira: BT-4458 | Tests: See scenarios


Role Exclusion (REQ-RULES-INHCT-004)

FR-INHCT-004: Exclude Roles from IC Delta Check

The system shall exclude roles marked with "Exclude from IC delta check" from INH rule evaluation.

Acceptance Criteria

Exclusion Behavior:

  • Given a role with "Exclude from IC delta check: true" and wells assigned that role, those wells shall not be used as negative controls for baseline calculation
  • Given Role A with "Exclude from IC delta check: true" as the only NC role, when a patient well is evaluated, the patient well shall not receive IC_FAILED (no valid baseline exists)
  • The system shall treat roles with "Exclude from IC delta check" set to true as if they do not exist for INH rule purposes

Inclusion Behavior:

  • Given a role with "Exclude from IC delta check: false" and wells assigned that role, those wells shall be included as negative controls for baseline calculation
  • Given Role A with "Exclude from IC delta check: false" as NC role with CT=30, and patient well IC CT=25 with ct_inhibition_delta=4, the patient well shall receive IC_FAILED (delta=5 > threshold=4)

Configuration:

  • The exclusion flag shall be configured per role in the control label mapping
  • Roles with "Exclude from IC delta check" not set shall be treated as false (included in evaluation)

Trace: Source: 3.0.0-INH Rule - Exclude marked roles for excluding CT delta check (Row 1, Row 2) | Jira: BT-5287 | Tests: See scenarios


Error Handling (REQ-RULES-INHCT-005)

FR-INHCT-005: Assign NO NC IN RUN Error When No Valid Negative Control Exists

The system shall assign IC_RULE_NO_NC_IN_RUN error when no valid negative control can be found for INH rule evaluation.

Acceptance Criteria

Error Trigger Conditions:

  • Given all negative control roles (NC, NTC) are configured with "Exclude from IC delta check: true", patient wells shall receive IC_RULE_NO_NC_IN_RUN error
  • Given role NC with "excluded from ic check: true" and role NTC with "excluded from ic check: true", when importing a run with Well A1 (Patient), Well A2 (NTC), Well A3 (NC), Well A1 shall receive IC_RULE_NO_NC_IN_RUN error

Error Scope:

  • The IC_RULE_NO_NC_IN_RUN error shall be applied to patient/sample wells that cannot be evaluated

Non-Error Case:

  • Given role NC with "excluded from ic check: false" and role NTC with "excluded from ic check: true", when importing a run with Well A1 (Patient), Well A2 (NTC), Well A3 (NC), Well A1 shall not receive IC_RULE_NO_NC_IN_RUN error (NC is valid)

Error Handling

ConditionResponse
All NC roles excluded from IC checkApply IC_RULE_NO_NC_IN_RUN to affected patient wells
No negative controls in runApply IC_RULE_NO_NC_IN_RUN to affected patient wells
Fallback controls also unavailableApply IC_RULE_NO_NC_IN_RUN to affected patient wells

Trace: Source: 3.0.0-INH Rule - Set NO NC IN RUN error if no neg control found (Row 1, Row 2) | Jira: BT-5287 | Tests: See scenarios


Configuration Options

OptionDefaultDescriptionAffects
ct_inhibition_delta(per target)Threshold for CT deviation from NC averageREQ-RULES-INHCT-001
exclude_from_ic_delta_checkfalseFlag to exclude role from INH rule evaluationREQ-RULES-INHCT-004
backup_mixes[]List of fallback mixes for control lookupREQ-RULES-INHCT-003

UI Notes (Illustrative)

REQ-RULES-INHCT-001 Display

  • CT value is displayed in red when IC_FAILED is applied
  • Tooltip displays "Inhibited" on hover over the flagged CT value

Implementation (Illustrative)

ComponentLocationPurpose
InhRuleAnalyzer/Rules/InhRule.phpInhibition CT detection - NC baseline calculation, fallback controls, role exclusion

Traceability Matrix

RequirementTitleVerificationImplementationTest CasesStatus
REQ-RULES-INHCT-001Flag IC Observation When CT Exceeds ThresholdTestInhRule.phpSee scenariosDraft
REQ-RULES-INHCT-002Calculate Negative Control IC CT BaselineTestInhRule.phpSee scenariosDraft
REQ-RULES-INHCT-003Use Fallback Control MixesTestInhRule.phpSee scenariosDraft
REQ-RULES-INHCT-004Exclude Roles from IC Delta CheckTestInhRule.phpSee scenariosDraft
REQ-RULES-INHCT-005Assign NO NC IN RUN ErrorTestInhRule.phpSee scenariosDraft

Notes

  • The INH rule is part of the QUEST new IC combined outcomes feature set (Epic BT-3865)
  • This rule helps identify potential inhibition in PCR reactions that could affect result reliability
  • The rule determines if the IC is in the range of the NEC IC (Negative Control Internal Control)

Acceptance Tests

Test: REQ-RULES-INHCT-001

Back to requirement

Test: Core INH Rule Trigger

Given: Mix A with Target A (type: IC, ct_inhibition_delta: 4)
And: Well A1 with observation CT = 20
And: Negative Control A2 with observation CT = 25
When: Well A1 observation runs through INH Rule
Then: Observation gets problem: IC_FAILED
And: CT value is marked as red
And: Hover over CT shows message: "Inhibited"

Test: Non-IC Target Exclusion

Given: Well A1 with observation CT = 20, target type = null (non-IC)
And: Negative Control A2 with observation CT = 25, target type = null (non-IC)
When: Well A1 observation runs through INH Rule
Then: Observation does NOT get IC_FAILED problem

Test: REQ-RULES-INHCT-002

Back to requirement

Test: Average Comparison

Given: Mix A with Target A (ct_inhibition_delta: 4)
And: Well A1 with observation CT = 20
And: Negative Control A2 with observation CT = 25
And: Negative Control A3 with observation CT = 23
And: Average NC CT = (25 + 23) / 2 = 24
And: Delta = |20 - 24| = 4 (NOT > 4)
When: Well A1 observation runs through INH Rule
Then: Observation does NOT get a problem

Test: Error/Resolved Control Exclusion

Given: Mix A with Target A (ct_inhibition_delta: 4)
And: Well A1 with observation CT = 20
And: Negative Control A2 with observation CT = 25 (valid)
And: Negative Control A3 with observation CT = 23, error: "Example Error" (excluded)
And: Negative Control A4 with observation CT = 22, resolution: "Example Resolution" (excluded)
And: Effective NC CT = 25 (only A2 used)
And: Delta = |20 - 25| = 5 > 4
When: Well A1 observation runs through INH Rule
Then: Observation gets problem: IC_FAILED

Test: REQ-RULES-INHCT-003

Back to requirement

Test: Fallback Controls Used

Given: Mix A with Target A (dye: IC, ct_inhibition_delta: 4)
And: Control label mapping: Role A, Mix A, backup mixes: Mix B
And: Well A1 with Role = Patient, Mix = Mix B, IC CT = 25
And: Well A2 with Role = Role A, Mix = Mix A, IC CT = 30
When: Well A1 is executed through INH Rule
Then: Well A1 observation gets problem: IC_FAILED

Test: Fallback Not Used When Original Mix Has Controls

Given: Mix A with Target A (dye: IC, ct_inhibition_delta: 4)
And: Control label mapping: Role A, Mix A, backup mixes: Mix B
And: Well A1 with Role = Patient, Mix = Mix B, IC CT = 25
And: Well A2 with Role = Role A, Mix = Mix A, IC CT = 30
And: Well A3 with Role = Role A, Mix = Mix B, IC CT = 29
When: Well A1 is executed through INH Rule
Then: Well A1 observation problem = null (no problem)

Test: REQ-RULES-INHCT-004

Back to requirement

Test: Role Exclusion

Given: Mix A with Target A (dye: IC, ct_inhibition_delta: 4)
And: Control label mapping: Role A, Exclude from IC delta check = true
And: Well A1 with Role = Patient, Mix = Mix B, IC CT = 25
And: Well A2 with Role = Role A, Mix = Mix A, IC CT = 30
When: Run is imported
Then: Well A1 observation does NOT get IC_FAILED problem

Test: Role Not Excluded

Given: Mix A with Target A (dye: IC, ct_inhibition_delta: 4)
And: Control label mapping: Role A, Exclude from IC delta check = false
And: Well A1 with Role = Patient, Mix = Mix B, IC CT = 25
And: Well A2 with Role = Role A, Mix = Mix A, IC CT = 30
When: Run is imported
Then: Well A1 observation gets IC_FAILED problem

Test: REQ-RULES-INHCT-005

Back to requirement

Test: NO NC IN RUN Error Triggered

Given: Role NC with name = NC, excluded from IC check = true
And: Role NTC with name = NTC, excluded from IC check = true
And: Well A1 with Patient role
And: Well A2 with NTC role
And: Well A3 with NC role
When: Run is imported
Then: Well A1 gets IC_RULE_NO_NC_IN_RUN error

Test: NO NC IN RUN Not Triggered When NC Available

Given: Role NC with name = NC, excluded from IC check = false
And: Role NTC with name = NTC, excluded from IC check = true
And: Well A1 with Patient role
And: Well A2 with NTC role
And: Well A3 with NC role
When: Run is imported
Then: Well A1 does NOT get IC_RULE_NO_NC_IN_RUN error

Design DocumentRelevant Sections
SDD AlgorithmsINH Rule Algorithm

Appendix: Process Artifacts

Completion Checklist

  • All requirements are capability-level (describe behavior, not UI)
  • Requirement variants consolidated (no requirement explosion - N/A, no consolidation needed)
  • UI details are fully demoted to Illustrative section
  • Configuration options are not encoded as requirements
  • Acceptance criteria describe behavior, not UI mechanics
  • Every requirement has acceptance criteria and source traceability
  • Error handling addressed for I/O, validation, and external system requirements
  • Open questions documented with owners assigned (none identified)
  • Consolidations documented in Reviewer Notes with reversibility info
  • Module can survive a full UI redesign unchanged
  • Refinements do not introduce new capabilities
  • Traceability matrix is complete

Reviewer Notes

No Consolidation Required

All 5 requirements in this domain represent distinct system capabilities:

RequirementCapabilityJustification
REQ-RULES-INHCT-001Core threshold comparison logicPrimary rule trigger condition
REQ-RULES-INHCT-002Baseline calculation with exclusionsDistinct averaging algorithm
REQ-RULES-INHCT-003Fallback control behaviorSeparate fallback resolution path
REQ-RULES-INHCT-004Role exclusion configurationIndependent configuration mechanism
REQ-RULES-INHCT-005Error condition handlingDistinct error state management

Rationale: Each requirement addresses a different aspect of the INH rule evaluation process. Consolidation would obscure the distinct behaviors and reduce testability. Conservative approach applied per RULES domain guidance.

Reversibility: Source requirements preserved 1:1.

  • Source: output/pilot/rules/rule-inhibition-ct/rule-inhibition-ct-restructured.md
  • Original SRS: output/srs/rules/rule-inhibition-ct.md