diff --git a/src/main/java/com/github/discvrseq/walkers/SplitVcfBySamples.java b/src/main/java/com/github/discvrseq/walkers/SplitVcfBySamples.java index 2cc7dd27..083e574d 100644 --- a/src/main/java/com/github/discvrseq/walkers/SplitVcfBySamples.java +++ b/src/main/java/com/github/discvrseq/walkers/SplitVcfBySamples.java @@ -364,7 +364,7 @@ private Object getReorderedAttributes(final Object attribute, final int[] oldToN if (attribute.getClass().isArray()) { tokens = (Object[]) attribute; } else if (List.class.isAssignableFrom(attribute.getClass())) { - tokens = ((List) attribute).toArray(); + tokens = ((List) attribute).toArray(); } else { tokens = attribute.toString().split(VCFConstants.INFO_FIELD_ARRAY_SEPARATOR); } diff --git a/src/main/java/com/github/discvrseq/walkers/VariantConcordanceScore.java b/src/main/java/com/github/discvrseq/walkers/VariantConcordanceScore.java index 1d393d57..1c26ac00 100644 --- a/src/main/java/com/github/discvrseq/walkers/VariantConcordanceScore.java +++ b/src/main/java/com/github/discvrseq/walkers/VariantConcordanceScore.java @@ -14,11 +14,9 @@ import org.broadinstitute.barclay.help.DocumentedFeature; import org.broadinstitute.hellbender.cmdline.StandardArgumentDefinitions; import org.broadinstitute.hellbender.cmdline.argumentcollections.MultiVariantInputArgumentCollection; -import org.broadinstitute.hellbender.engine.FeatureInput; -import org.broadinstitute.hellbender.engine.GATKPath; -import org.broadinstitute.hellbender.engine.ReadsContext; -import org.broadinstitute.hellbender.engine.ReferenceContext; +import org.broadinstitute.hellbender.engine.*; import org.broadinstitute.hellbender.exceptions.GATKException; +import org.broadinstitute.hellbender.utils.SimpleInterval; import java.io.File; import java.io.IOException; @@ -130,8 +128,10 @@ else if (!grouped.get(feat).isEmpty()) { return; } - List sampleVariants = grouped.get(getVariantConcordanceScoreArgumentCollection().inputVariants); - sampleVariants = sampleVariants.stream().filter(vc -> !vc.isFiltered()).collect(Collectors.toList()); + // NOTE: the input VCF is excluded from drivingVariants since the reference VCFs tend to have far fewer sites + List sampleVariants = features.getFeatures(getVariantConcordanceScoreArgumentCollection().inputVariants, new SimpleInterval(referenceContext.getContig(), referenceContext.getStart(), referenceContext.getStart())).stream(). + filter(vc -> !vc.isFiltered() & vc.getStart() == referenceContext.getStart()).toList(); + if (sampleVariants.isEmpty()) { return; } @@ -265,11 +265,8 @@ private static final class VariantConcordanceScoreArgumentCollection extends Mul @Override public List getDrivingVariantPaths() { - List ret = new ArrayList<>(); - ret.add(inputVariants); - ret.addAll(referenceFiles); - - return ret; + // NOTE: the input VCF is excluded from drivingVariants since the reference VCFs tend to have far fewer sites + return new ArrayList<>(referenceFiles); } } }