Source: https://guthlabs.ai/docs/instruments/gc-content-sequence-composition-analyzer/mechanism/

instrument mechanism / verified-clean

# GC Content & Sequence Composition Analyzer mechanism

The inspectable method record for GC Content & Sequence Composition Analyzer, kept separate from implementation and qualification.

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Model scope

GC% is mathematically sound for canonical DNA or RNA bases, but the DNA/RNA input claim conflicts with the AT% output. Define sequence normalization, valid-symbol policy, empty-input behavior, and whether RNA reports AU% before release.

- GC%=(G+C)/total×100 is correct only when total is explicitly defined as the count of valid canonical nucleotides and G/C are counted case-insensitively.

- AT% is not correct for RNA sequences because RNA uses U rather than T; RNA requires AU%=(A+U)/total×100, or the instrument must restrict input to DNA.

- The specification does not define how invalid, ambiguous, gap, whitespace, or other characters affect total, counts, and percentages.

- The claimed sequence length stats have no formulas or definition beyond length; it is unclear whether length means raw input length or normalized valid-base length.

## Units and conventions

- Percentages are expressed on a 0–100 scale, not as fractions from 0 to 1.

- total is assumed to be the number of canonical A, C, G, and T bases for DNA, or A, C, G, and U for RNA.

- Inputs are assumed to be normalized for case and whitespace before counting; this behavior is not specified.

- For the RNA test vector, literal AT% is shown to expose the ambiguity; the biologically appropriate complementary percentage is AU%.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "sequence": "ATGC"
  },
  "expected_outputs": {
    "gc_percent": 50,
    "at_percent": 50,
    "base_counts": {
      "A": 1,
      "T": 1,
      "G": 1,
      "C": 1
    },
    "length": 4
  },
  "working": "Count A=1, T=1, G=1, C=1, so total=1+1+1+1=4. GC count=G+C=1+1=2. GC%=2/4×100=50%. AT count=A+T=1+1=2. AT%=2/4×100=50%. Length=4."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

The specification does not define behavior for an empty sequence, causing GC% and AT% to require division by zero. It also does not define RNA U handling or the denominator policy for ambiguous symbols such as N, so different reasonable implementations can produce different outputs.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/gc-content-sequence-composition-analyzer/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/gc-content-sequence-composition-analyzer/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/gc-content-sequence-composition-analyzer/qualification/>)

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json`

- `evidence-tranche5/tranche5-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
