Skip to content

TSV output formatter #84

@crashfrog

Description

@crashfrog

Parent

#58 (Phase 1 MVP: Evidence-Informed Alignment with Deferred Filtering)

What to build

Implement TSV formatter in phraya-filter. Converts filtered VariantObservations to tab-separated values with user-selectable columns. Includes header row. Handles escaping of special characters (tabs, newlines in provenance fields). Simpler than VCF, useful for R/Python analysis.

Acceptance criteria

  • format_tsv(observations: Iterator, columns: &[Column]) → String
  • Column enum: Position, RefBase, AltBases, Coverage, Mapq, Cigar, EditDistance, Confidence, Provenance
  • Default columns: Position, RefBase, AltBases, Coverage, Mapq
  • Header row with column names
  • Escape special characters: tabs (\t → \t), newlines (\n → \n)
  • Tests: single observation → TSV row with correct columns
  • Tests: column selection (only Position + Coverage) → only those columns in output
  • Tests: special characters in provenance → escaped correctly
  • Tests: multi-allelic site → ALT column contains comma-separated alleles

Blocked by

#81 (filter library)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions