code: def parse_ggKbase_tables(tables, id_type):
      
      g2info = {}
      for table in tables:
          for line in open(table):
              line = line.strip().split('\t')
              if line[0].startswith('name'):
                  header = line
                  header[4] = 'genome size (bp)'
                  header[12] = '#SCGs'
                  header[13] = '#SCG duplicates'
                  continue
              name, code, info = line[0], line[1], line
              info = [to_int(i) for i in info]
              if id_type is False: # try to use name and code ID
                  if 'UNK' in code or 'unknown' in code:
                      code = name
                  if (name != code) and (name and code in g2info):
                      print('# duplicate name or code in table(s)', file=sys.stderr)
                      print('# %s and/or %s' % (name, code), file=sys.stderr)
                      exit()
                  if name not in g2info:
                      g2info[name] = {item:stat for item, stat in zip(header, info)}
                  if code not in g2info:
                      g2info[code] = {item:stat for item, stat in zip(header, info)}
              else:
                  if id_type == 'name':
                      ID = name
                  elif id_type == 'code':
                      ID = code
                  else:
                      print('# specify name or code column using -id', file=sys.stderr)
                      exit()
                  ID = ID.replace(' ', '')
                  g2info[ID] = {item:stat for item, stat in zip(header, info)}
                  if g2info[ID]['genome size (bp)'] == '':
                      g2info[ID]['genome size (bp)'] = 0
      return g2info
docs: convert ggKbase genome info tables to dictionary