code: def _variant_checkpoints(samples):
      
      checkpoints = {}
      checkpoints["vc"] = any([dd.get_variantcaller(d) or d.get("vrn_file") for d in samples])
      checkpoints["sv"] = any([dd.get_svcaller(d) for d in samples])
      checkpoints["jointvc"] = any([(dd.get_jointcaller(d) or "gvcf" in dd.get_tools_on(d))
                                    for d in samples])
      checkpoints["hla"] = any([dd.get_hlacaller(d) for d in samples])
      checkpoints["align"] = any([(dd.get_aligner(d) or dd.get_bam_clean(d)) for d in samples])
      checkpoints["align_split"] = not all([(dd.get_align_split_size(d) is False or
                                             not dd.get_aligner(d))
                                            for d in samples])
      checkpoints["archive"] = any([dd.get_archive(d) for d in samples])
      checkpoints["umi"] = any([dd.get_umi_consensus(d) for d in samples])
      checkpoints["ensemble"] = any([dd.get_ensemble(d) for d in samples])
      checkpoints["cancer"] = any(dd.get_phenotype(d) in ["tumor"] for d in samples)
      return checkpoints
docs: Check sample configuration to identify required steps in analysis.