code: def gatk_splitreads(data):
      
      broad_runner = broad.runner_from_config(dd.get_config(data))
      ref_file = dd.get_ref_file(data)
      deduped_bam = dd.get_deduped_bam(data)
      base, ext = os.path.splitext(deduped_bam)
      split_bam = base + ".splitN" + ext
      if file_exists(split_bam):
          data = dd.set_split_bam(data, split_bam)
          return data
      gatk_type = broad_runner.gatk_type()
      with file_transaction(data, split_bam) as tx_split_bam:
          params = ["-T", "SplitNCigarReads",
                    "-R", ref_file,
                    "-I", deduped_bam]
          if gatk_type == "gatk4":
              params += ["--output", tx_split_bam]
          else:
              params += ["-rf", "ReassignOneMappingQuality",
                         "-RMQF", "255",
                         "-RMQT", "60",
                         "-rf", "UnmappedRead",
                         "-U", "ALLOW_N_CIGAR_READS",
                         "-o", tx_split_bam]
              if dd.get_quality_format(data) == "illumina":
                  params += ["--fix_misencoded_quality_scores", "-fixMisencodedQuals"]
          broad_runner.run_gatk(params)
      bam.index(split_bam, dd.get_config(data))
      data = dd.set_split_bam(data, split_bam)
      return data
docs: use GATK to split reads with Ns in the CIGAR string, hard clipping regions
      that end up in introns