code: def _find_umi(files):
      
      base = os.path.basename(_commonprefix(files))
  
      def _file_ext(f):
          exts = utils.splitext_plus(os.path.basename(f).replace(base, ""))[0].split("_")
          exts = [x for x in exts if x]
          return exts[0]
  
      exts = dict([(_file_ext(f), f) for f in files])
      if "I1" in exts:
          return exts["R1"], exts["R2"], exts["I1"]
      else:
          assert "R3" in exts, exts
          return exts["R1"], exts["R3"], exts["R2"]
docs: Find UMI file using different naming schemes.
  
      R1/R2/R3 => R1/R3 with R2 UMI
      R1/R2/I1 => R1/R2 with I1 UMI