Skip to content

Validator

Mojo struct 🡭

@memory_only
struct Validator

Validator for optional ASCII and quality checks on FASTQ records.

Structure (@, +, seq/qual length) is validated in the parser hot loop; this validator only runs optional ASCII and quality-range checks when enabled via ParserConfig (check_ascii, check_quality). Used by FastqParser when those flags are True; can also be used standalone on FastqRecord or FastqView.

Attributes: check_ascii: If True, validate() requires all record bytes to be ASCII. check_quality: If True, validate() checks quality bytes against quality_schema. quality_schema: Bounds (LOWER, UPPER) and OFFSET for quality validation.

  • check_ascii (Bool)
  • check_quality (Bool)
  • quality_schema (QualitySchema)

AnyType, Copyable, ImplicitlyDestructible, Movable

def __init__(out self, check_ascii: Bool, check_quality: Bool, quality_schema: QualitySchema)

Initialize Validator with ASCII/quality flags and quality schema.

Args:

  • check_ascii (Bool): If True, validate() will reject non-ASCII bytes in records.
  • check_quality (Bool): If True, validate() will check quality bytes against schema.
  • quality_schema (QualitySchema): Schema used for quality validation (e.g. from _parse_schema).
  • self (Self)

Returns:

Self

def id_snippet(self, record: FastqRecord) -> String

Extract id snippet from record for error messages.

Args:

  • self (Self)
  • record (FastqRecord)

Returns:

String

def id_snippet(self, record: FastqView[record.origin]) -> String

Extract id snippet from FastqView for error messages.

Args:

  • self (Self)
  • record (FastqView)

Returns:

String

def validate(self, record: FastqRecord, record_number: Int = 0, line_number: Int = 0)

Run configured validations (ASCII and/or quality) for a parsed FASTQ record.

Structure is validated in the parser hot loop; here only check_ascii and check_quality are applied when enabled.

Args:

  • self (Self)
  • record (FastqRecord): The FastqRecord to validate.
  • record_number (Int): Optional 1-indexed record number for error context (0 if unknown).
  • line_number (Int): Optional 1-indexed line number for error context (0 if unknown).

Raises:

def validate(self, record: FastqView[record.origin], record_number: Int = 0, line_number: Int = 0)

Run configured validations (ASCII and/or quality) for a parsed FASTQ record.

Structure is validated in the parser hot loop; here only check_ascii and check_quality are applied when enabled.

Args:

  • self (Self)
  • record (FastqView): The FastqView to validate.
  • record_number (Int): Optional 1-indexed record number for error context (0 if unknown).
  • line_number (Int): Optional 1-indexed line number for error context (0 if unknown).

Raises: