<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _init_equiv(self):
 """Add equivalent GO IDs to go2color, if necessary."""

        gocolored_all = set(self.go2color)
        go2obj_usr = self.gosubdag.go2obj
        go2color_add = {}
        for gocolored_cur, color in self.go2color.items():
            # Ignore GOs in go2color that are not in the user set
            if gocolored_cur in go2obj_usr:
                goobj = go2obj_usr[gocolored_cur]
                goids_equiv = goobj.alt_ids.union([goobj.id])
                # mrk_alt = "*" if gocolored_cur != goobj.id else ""
                # print("COLORED({}) KEY({}){:1} ALL({})".format(
                #     gocolored_cur, goobj.id, mrk_alt, goids_equiv))
                # Loop through GO IDs which are not colored, but are equivalent to colored GO IDs.
                for goid_add in goids_equiv.difference(gocolored_all):
                    if goid_add in go2color_add:
                        print('**TBD: TWO DIFFERENT COLORS FOR EQUIV GO ID') # pylint: disable=superfluous-parens
                    go2color_add[goid_add] = color
        # print("ADDING {N} GO IDs TO go2color".format(N=len(go2color_add)))
        for goid, color in go2color_add.items():
            self.go2color[goid] = color