code: def _SID_call_prep(align_bams, items, ref_file, assoc_files, region=None, out_file=None):
      
      base_config = items[0]["config"]
      for x in align_bams:
          bam.index(x, base_config)
  
      params = ["-R", ref_file, "-T", "SomaticIndelDetector", "-U", "ALLOW_N_CIGAR_READS"]
      # Limit per base read start count to between 200-10000, i.e. from any base
      # can no more 10000 new reads begin.
      # Further, limit maxNumberOfReads accordingly, otherwise SID discards
      # windows for high coverage panels.
      paired = vcfutils.get_paired_bams(align_bams, items)
      params += ["--read_filter", "NotPrimaryAlignment"]
      params += ["-I:tumor", paired.tumor_bam]
      min_af = float(get_in(paired.tumor_config, ("algorithm", "min_allele_fraction"), 10)) / 100.0
      if paired.normal_bam is not None:
          params += ["-I:normal", paired.normal_bam]
          # notice there must be at least 4 reads of coverage in normal
          params += ["--filter_expressions", "T_COV<6||N_COV<4||T_INDEL_F<%s||T_INDEL_CF<0.7" % min_af]
      else:
          params += ["--unpaired"]
          params += ["--filter_expressions", "COV<6||INDEL_F<%s||INDEL_CF<0.7" % min_af]
      if region:
          params += ["-L", bamprep.region_to_gatk(region), "--interval_set_rule",
                     "INTERSECTION"]
      return params
docs: Preparation work for SomaticIndelDetector.