code: def get_goone2ntletter(self, go2dcnt, depth2goobjs):
          
          # 1. Group level-01/depth-01 GO terms by namespace
          ns2dcntgoobj = cx.defaultdict(list)
          for goobj in depth2goobjs[1]:
              dcnt = go2dcnt[goobj.id]
              ns2dcntgoobj[goobj.namespace].append((dcnt, goobj))
          # 2. Assign letters to level-01/depth-01 GO terms
          go2nt = {}
          ntobj = cx.namedtuple("NtGoLetters", "D1 dcnt goobj")
          _go2abc = self.go2letter
          letters = list(chain(range(ord('A'), ord('Z') + 1), range(ord('a'), ord('z') + 1)))
          for list_dcnt_goobj in ns2dcntgoobj.values():
              letter_idx = 0
              for dcnt, goobj in sorted(list_dcnt_goobj, key=lambda t: t[0], reverse=True):
                  letter = chr(letters[letter_idx]) if _go2abc is None else _go2abc.get(goobj.id, '')
                  go2nt[goobj.id] = ntobj._make([letter, dcnt, goobj])
                  letter_idx += 1
          return go2nt
docs: Assign letters to depth-01 GO terms ordered using descendants cnt.