public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { if ( tracker == null ) return 0; final Collection<VariantContext> VCs = tracker.getValues(variants, context.getLocation()); if ( VCs.size() == 0 ) return 0; final VCcontext vc = new VCcontext(VariantContextUtils.sitesOnlyVariantContexts(VCs), ref); // TODO -- what should we do about filtered records? if ( !queue.isEmpty() ) { final VCcontext previous = queue.getLast(); if ( !previous.loc.onSameContig(vc.loc) || previous.loc.distance(vc.loc) > MAX_DISTANCE_BETWEEN_MERGED_RECORDS || queue.getFirst().loc.distance(vc.loc) > MAX_HAPLOTYPE_TO_CONSIDER ) { purgeQueue(); } } queue.addLast(vc); return 0; }
vcs = VariantContextUtils.sitesOnlyVariantContexts(vcs);