From 50d9f4f1e0ad2b4ffaa99b9b7fa65e0b909a4cbc Mon Sep 17 00:00:00 2001 From: Till Hartmann Date: Tue, 21 Jan 2025 16:12:23 +0100 Subject: [PATCH] fix: extract samples by name, so order is always in-sync with header --- src/annotate/strucvars/mod.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/annotate/strucvars/mod.rs b/src/annotate/strucvars/mod.rs index cc193042..61af4d67 100644 --- a/src/annotate/strucvars/mod.rs +++ b/src/annotate/strucvars/mod.rs @@ -845,7 +845,6 @@ impl AsyncAnnotatedVariantWriter for VarFishStrucvarTsvWriter { } // First, create genotype info records. - let mut gt_it = record.samples().values(); for sample_name in header.sample_names() { tsv_record.genotype.entries.push(GenotypeInfo { name: sample_name.clone(), @@ -853,7 +852,10 @@ impl AsyncAnnotatedVariantWriter for VarFishStrucvarTsvWriter { }); let entry = tsv_record.genotype.entries.last_mut().expect("just pushed"); - let sample = gt_it.next().expect("genotype iterator exhausted"); + let sample = record + .samples() + .get(&header, sample_name) + .expect("sample not found"); for (key, value) in sample.keys().as_ref().iter().zip(sample.values().iter()) { match (key.as_ref(), value) {