From a186bd1c9219d0e9aa3be1bda5f1b60b1f06037d Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Tue, 5 May 2026 18:05:26 +0200 Subject: [PATCH] fix: validate non-empty sequence IDs in FASTA and FASTQ writers Adds a pre-processing guard that checks for empty sequence identifiers before formatting. This prevents malformed FASTA output and stops downstream processing of invalid FASTQ data by terminating early. The check is placed before existing sequence-length validations to enforce non-empty IDs during batch processing. --- pkg/obiformats/fastseq_write_fasta.go | 3 +++ pkg/obiformats/fastseq_write_fastq.go | 3 +++ 2 files changed, 6 insertions(+) diff --git a/pkg/obiformats/fastseq_write_fasta.go b/pkg/obiformats/fastseq_write_fasta.go index 88b029f..a79584e 100644 --- a/pkg/obiformats/fastseq_write_fasta.go +++ b/pkg/obiformats/fastseq_write_fasta.go @@ -90,6 +90,9 @@ func FormatFastaBatch(batch obiiter.BioSequenceBatch, formater FormatHeader, ski log.Debugf("FormatFastaBatch: #%d : %d seqs", batch.Order(), batch.Len()) for _, seq := range batch.Slice() { + if len(seq.Id()) == 0 { + log.Fatalf("Sequence identifier is empty") + } if seq.Len() > 0 { // Write header directly into bs — no intermediate string bs.WriteByte('>') diff --git a/pkg/obiformats/fastseq_write_fastq.go b/pkg/obiformats/fastseq_write_fastq.go index 845993a..679230c 100644 --- a/pkg/obiformats/fastseq_write_fastq.go +++ b/pkg/obiformats/fastseq_write_fastq.go @@ -64,6 +64,9 @@ func FormatFastqBatch(batch obiiter.BioSequenceBatch, first := true for _, seq := range batch.Slice() { + if len(seq.Id()) == 0 { + log.Fatalf("Sequence identifier is empty") + } if seq.Len() > 0 { _formatFastq(&bs, seq, formater)