code: def get_usrgos(self, fin_goids, prt):
          
          ret = self.get_goids(None, fin_goids, prt)
          # If there have been no GO IDs explicitly specified by the user
          if not ret:
              # If the GO-DAG is sufficiently small, print all GO IDs
              if self.max_gos is not None and len(self.go2obj) < self.max_gos:
                  main_gos = set(o.id for go, o in self.go2obj.items() if go != o.id)
                  go_leafs = set(go for go, o in self.go2obj.items() if not o.children)
                  ret = go_leafs.difference(main_gos)
              else:
                  raise RuntimeError("GO IDs NEEDED")
          go2obj = self.get_go2obj(ret)
          return get_go2obj_unique(go2obj)
docs: Return source GO IDs .