docs: def anncluster(c, clus_obj, db, type_ann, feature_id="name"):
      """intersect transcription position with annotation files"""
      id_sa, id_ea, id_id, id_idl, id_sta = 1, 2, 3, 4, 5
      if type_ann == "bed":
          id_sb = 7
          id_eb = 8
          id_stb = 11
          id_tag = 9
      ida = 0
      clus_id = clus_obj.clus
      loci_id = clus_obj.loci
      db = os.path.splitext(db)[0]
      logger.debug("Type:%s\n" % type_ann)
      for cols in c.features():
          if type_ann == "gtf":
              cb, sb, eb, stb, db, tag = read_gtf_line(cols[6:], feature_id)
          else:
              sb = int(cols[id_sb])
              eb = int(cols[id_eb])
              stb = cols[id_stb]
              tag = cols[id_tag]
          id = int(cols[id_id])
          idl = int(cols[id_idl])
          if (id in clus_id):
              clus = clus_id[id]
              sa = int(cols[id_sa])
              ea = int(cols[id_ea])
              ida += 1
              lento5, lento3, strd = _position_in_feature([sa, ea, cols[id_sta]], [sb, eb, stb])
              if db in loci_id[idl].db_ann:
                  ann = annotation(db, tag, strd, lento5, lento3)
                  tdb = loci_id[idl].db_ann[db]
                  tdb.add_db_ann(ida, ann)
                  loci_id[idl].add_db(db, tdb)
              else:
                  ann = annotation(db, tag, strd, lento5, lento3)
                  tdb = dbannotation(1)
                  tdb.add_db_ann(ida, ann)
                  loci_id[idl].add_db(db, tdb)
              clus_id[id] = clus
      clus_obj.clus = clus_id
      clus_obj.loci = loci_id
      return clus_obj