def modify_sub_vect_frags(self):
        "include repeated frags"
        modified_vect_frags = dict()
        init_vect_frags = self.sub_level.S_o_A_frags

        # init_max_id_d = init_vect_frags["id"].max()
        max_id_F = len(init_vect_frags["id"])
        max_id_C = init_vect_frags["id_c"].max() + 1

        # HSV_tuples = [(x*1.0/(max_id_C - 1), 0.5, 0.5) for x in range(0,
        # (max_id_C-1))]
        # cmap = plt.cm.gist_ncar
        cmap = plt.cm.prism
        # extract all colors from the .jet map
        cmaplist = [cmap(i) for i in range(cmap.N)]
        id_smple = np.linspace(0, cmap.N, num=max_id_C)
        RGB_tuples = []
        for i in range(0, max_id_C - 1):
            RGB_tuples.append(cmaplist[int(id_smple[i])])

        # RGB_tuples = map(lambda x: colorsys.hsv_to_rgb(*x), HSV_tuples)

        self.init_n_sub_frags = len(init_vect_frags["id"])

        modified_vect_frags["pos"] = list(init_vect_frags["pos"])
        modified_vect_frags["sub_pos"] = list(init_vect_frags["sub_pos"])
        modified_vect_frags["id_c"] = list(init_vect_frags["id_c"])
        modified_vect_frags["start_bp"] = list(init_vect_frags["start_bp"])
        modified_vect_frags["len_bp"] = list(init_vect_frags["len_bp"])
        modified_vect_frags["sub_len"] = list(init_vect_frags["sub_len"])
        modified_vect_frags["circ"] = list(init_vect_frags["circ"])
        modified_vect_frags["id"] = list(init_vect_frags["id"])
        modified_vect_frags["prev"] = list(init_vect_frags["prev"])
        modified_vect_frags["next"] = list(init_vect_frags["next"])
        modified_vect_frags["l_cont"] = list(init_vect_frags["l_cont"])
        modified_vect_frags["sub_l_cont"] = list(init_vect_frags["sub_l_cont"])
        modified_vect_frags["l_cont_bp"] = list(init_vect_frags["l_cont_bp"])
        modified_vect_frags["n_accu"] = list(init_vect_frags["n_accu"])
        modified_vect_frags["rep"] = list(np.zeros(max_id_F, dtype=np.int32))
        modified_vect_frags["activ"] = list(np.ones(max_id_F, dtype=np.int32))
        modified_vect_frags["id_d"] = list(init_vect_frags["id"])
        # WARNING IMPLICT BREAKING OF THE CONTIGS
        for data_dup in self.sub_candidates_output_data:
            n_dup = int(data_dup[1])
            id_f = data_dup[0]
            for k in range(0, n_dup):
                modified_vect_frags["pos"].append(0)
                modified_vect_frags["sub_pos"].append(0)
                modified_vect_frags["id_c"].append(max_id_C)
                modified_vect_frags["start_bp"].append(0)
                modified_vect_frags["len_bp"].append(
                    init_vect_frags["len_bp"][id_f]
                )
                modified_vect_frags["sub_len"].append(
                    init_vect_frags["sub_len"][id_f]
                )
                modified_vect_frags["circ"].append(
                    init_vect_frags["circ"][id_f]
                )
                modified_vect_frags["id"].append(max_id_F)
                modified_vect_frags["prev"].append(-1)
                modified_vect_frags["next"].append(-1)
                modified_vect_frags["l_cont"].append(1)
                modified_vect_frags["sub_l_cont"].append(
                    init_vect_frags["sub_len"][id_f]
                )
                modified_vect_frags["l_cont_bp"].append(
                    init_vect_frags["len_bp"][id_f]
                )
                modified_vect_frags["n_accu"].append(
                    init_vect_frags["n_accu"][id_f]
                )
                modified_vect_frags["rep"].append(1)
                modified_vect_frags["activ"].append(1)
                modified_vect_frags["id_d"].append(init_vect_frags["id"][id_f])
                max_id_F += 1
                max_id_C += 1

        logger.info("MAX ID CONTIG = {}".format(max_id_C))

        modified_vect_frags["pos"] = np.array(
            modified_vect_frags["pos"], dtype=np.int32
        )
        modified_vect_frags["sub_pos"] = np.array(
            modified_vect_frags["sub_pos"], dtype=np.int32
        )
        modified_vect_frags["id_c"] = np.array(
            modified_vect_frags["id_c"], dtype=np.int32
        )
        modified_vect_frags["start_bp"] = np.array(
            modified_vect_frags["start_bp"], dtype=np.int32
        )
        modified_vect_frags["len_bp"] = np.array(
            modified_vect_frags["len_bp"], dtype=np.int32
        )
        modified_vect_frags["sub_len"] = np.array(
            modified_vect_frags["sub_len"], dtype=np.int32
        )
        modified_vect_frags["circ"] = np.array(
            modified_vect_frags["circ"], dtype=np.int32
        )
        modified_vect_frags["id"] = np.array(
            modified_vect_frags["id"], dtype=np.int32
        )
        modified_vect_frags["prev"] = np.array(
            modified_vect_frags["prev"], dtype=np.int32
        )
        modified_vect_frags["next"] = np.array(
            modified_vect_frags["next"], dtype=np.int32
        )
        modified_vect_frags["l_cont"] = np.array(
            modified_vect_frags["l_cont"], dtype=np.int32
        )
        modified_vect_frags["sub_l_cont"] = np.array(
            modified_vect_frags["sub_l_cont"], dtype=np.int32
        )
        modified_vect_frags["l_cont_bp"] = np.array(
            modified_vect_frags["l_cont_bp"], dtype=np.int32
        )
        modified_vect_frags["n_accu"] = np.array(
            modified_vect_frags["n_accu"], dtype=np.int32
        )
        modified_vect_frags["rep"] = np.array(
            modified_vect_frags["rep"], dtype=np.int32
        )
        modified_vect_frags["activ"] = np.array(
            modified_vect_frags["activ"], dtype=np.int32
        )
        modified_vect_frags["id_d"] = np.array(
            modified_vect_frags["id_d"], dtype=np.int32
        )

        id_x = 0
        collector_id_repeats = []
        frag_dispatcher = []
        for id_f in range(0, self.init_n_sub_frags):
            if id_f in self.sub_candidates_dup:
                id_start = id_x
                id_dup = np.nonzero(modified_vect_frags["id_d"] == id_f)[0]
                collector_id_repeats.extend(list(id_dup))
                n_rep = len(id_dup)
                frag_dispatcher.append(
                    (np.int32(id_start), np.int32(id_start + n_rep))
                )
                id_x += n_rep
            else:
                id_start = id_x
                n_rep = 1
                frag_dispatcher.append(
                    (np.int32(id_start), np.int32(id_start + n_rep))
                )
                collector_id_repeats.append(id_f)
                id_x += 1

        self.sub_collector_id_repeats = np.array(
            collector_id_repeats, dtype=np.int32
        )
        self.sub_frag_dispatcher = np.array(frag_dispatcher, dtype=self.int2)

        self.sub_n_frags = len(modified_vect_frags["id"])

        # pos_vect_frags_4_GL = np.ndarray((self.n_frags, 4), dtype=np.float32)
        # col_vect_frags_4_GL = np.ndarray((self.n_frags, 4), dtype=np.float32)
        #
        # for id_f_curr in xrange(0 , self.sub_n_frags):
        #     id_d = modified_vect_frags['id_d'][id_f_curr]
        #     id_c = init_vect_frags['id_c'][id_d]
        #     pos_vect_frags_4_GL[id_f_curr, 0] =
        #     modified_vect_frags['pos'][id_f_curr]
        #     pos_vect_frags_4_GL[id_f_curr, 1] =
        #     modified_vect_frags['id_c'][id_f_curr]
        #     pos_vect_frags_4_GL[id_f_curr, 2] = 0.
        #     pos_vect_frags_4_GL[id_f_curr, 3] = np.float32(1.0)
        #
        #     col_vect_frags_4_GL[id_f_curr, 0] =
        #     np.float32(RGB_tuples[id_c - 1][0])
        #     col_vect_frags_4_GL[id_f_curr, 1] =
        #     np.float32(RGB_tuples[id_c - 1][1])
        #     col_vect_frags_4_GL[id_f_curr, 2] =
        #     np.float32(RGB_tuples[id_c - 1][2])
        #     col_vect_frags_4_GL[id_f_curr, 3] =
        #     np.float32(1.0)
        #
        # self.sub_col_vect_frags_4_GL = col_vect_frags_4_GL
        # self.sub_pos_vect_frags_4_GL = pos_vect_frags_4_GL
        self.new_sub_S_o_A_frags = modified_vect_frags
include repeated frags