code: def _init_goid2color(self):
          
          goid2color = {}
          # 1. colors based on p-value override colors based on source GO
          if self.go2res is not None:
              alpha2col = self.pltvars.alpha2col
              pval_name = self.pval_name
              for goid, res in self.go2res.items():
                  pval = getattr(res, pval_name, None)
                  if pval is not None:
                      for alpha, color in alpha2col.items():
                          if pval <= alpha and res.study_count != 0:
                              if goid not in goid2color:
                                  goid2color[goid] = color
          # 2. GO source color
          color = self.pltvars.key2col['go_sources']
          for goid in self.godag.go_sources:
              if goid not in goid2color:
                  goid2color[goid] = color
          # 3. Level-01 GO color
          color = self.pltvars.key2col['level_01']
          for goid, goobj in self.godag.go2obj.items():
              if goobj.level == 1:
                  if goid not in goid2color:
                      goid2color[goid] = color
          return goid2color
docs: Set colors of GO terms.