code: def _handle_special_inputs(inputs, variables):
      
      from bcbio import structural
      optional = [["config", "algorithm", "coverage"],
                  ["config", "algorithm", "variant_regions"],
                  ["config", "algorithm", "sv_regions"],
                  ["config", "algorithm", "validate"],
                  ["config", "algorithm", "validate_regions"]]
      all_vs = set([get_base_id(v["id"]) for v in variables])
      out = []
      for input in inputs:
          if input == ["reference", "aligner", "indexes"]:
              for v in variables:
                  vid = get_base_id(v["id"]).split("__")
                  if vid[0] == "reference" and vid[1] in alignment.TOOLS:
                      out.append(vid)
          elif input == ["reference", "snpeff", "genome_build"]:
              found_indexes = False
              for v in variables:
                  vid = get_base_id(v["id"]).split("__")
                  if vid[0] == "reference" and vid[1] == "snpeff":
                      out.append(vid)
                      found_indexes = True
              assert found_indexes, "Found no snpEff indexes in %s" % [v["id"] for v in variables]
          elif input == ["config", "algorithm", "background", "cnv_reference"]:
              for v in variables:
                  vid = get_base_id(v["id"]).split("__")
                  if (vid[:4] == ["config", "algorithm", "background", "cnv_reference"] and
                        structural.supports_cnv_reference(vid[4])):
                      out.append(vid)
          elif input in optional:
              if _get_string_vid(input) in all_vs:
                  out.append(input)
          else:
              out.append(input)
      return out
docs: Adjust input variables based on special cases.
  
      This case handles inputs where we are optional or can have flexible choices.
  
      XXX Need to better expose this at a top level definition.