Skip to content

feat: Phase I I1 FASTA export -- dry-lab AMP candidate set exporter with FAE- prefix, amino-acid validation, toy-data enforcement, 63 tests - #911

Merged
cschanhniem merged 1 commit into
mainfrom
feat/i1-fasta-export
Jul 10, 2026
Merged

cschanhniem merged 1 commit into
mainfrom
feat/i1-fasta-export

Conversation

@cschanhniem

Copy link
Copy Markdown
Collaborator

Implements I1 from NEXT_100_PR_MAP: FASTA export module.

What

  • src/openamp_foundry/export/fasta_export.py: FASTA export with FAE- prefix
  • FastaExportEntry (6 fields), FastaExportRecord (7 fields), FastaExportValidationResult
  • VALID_EXPORT_CONTEXTS (4), VALID_CANDIDATE_STATUSES (5), VALID_AMINO_ACIDS (20)
  • DRY_LAB_SAFE_CONTEXTS: dry_lab_only/partner_review/internal_use (excludes public_release)
  • TOY_ID_PREFIXES: TOY-/MOCK-/EXAMPLE-/DEMO-/TEST-
  • 10 validation rules: prefix, context, dry-lab+context consistency, total_candidates==len(entries), export_note claim term, amino acid validity, sequence length [5,100], entry context, entry status, dry_lab_only→toy-data enforcement
  • format_fasta_export(): FASTA with ; comment header and 60-char line wrapping
  • 63 tests across 5 classes; BASELINE 7969→8032

Why

Standard FASTA format lets partner labs directly import candidates into existing pipelines without custom parsers. The dry-lab enforcement gates (toy-id prefix OR is_toy_data flag) prevent computational candidates from being exported with context suggesting wet-lab validation.

Disconfirming pass

  • public_release context blocked under dry_lab_only=True
  • Real candidate IDs (no toy prefix) blocked
  • Invalid amino acids (X, B, Z, U) blocked
  • Sequence length outside [5,100] blocked
  • export_note without dry-lab claim terms blocked

…ith FAE- prefix, amino-acid validation, toy-data enforcement, 63 tests (#910)
@cschanhniem
cschanhniem merged commit a527987 into main Jul 10, 2026
1 check failed
cschanhniem added a commit that referenced this pull request Jul 10, 2026
…efix, OpenAMP namespace, annotate_certificate_with_context, 63 tests (#911) (#912)

Co-authored-by: OpenCode <opencode@example.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant