code: def _all_possible_indices(self, column_names):
          
          candidate_column_groups = [
              ['seqname', 'start', 'end'],
              ['gene_name'],
              ['gene_id'],
              ['transcript_id'],
              ['transcript_name'],
              ['exon_id'],
              ['protein_id'],
              ['ccds_id'],
          ]
          indices = []
          column_set = set(column_names)
          # Since queries are often restricted by feature type
          # we should include that column in combination with all
          # other indices we anticipate might improve performance
          for column_group in candidate_column_groups:
              skip = False
              for column_name in column_group:
                  # some columns, such as 'exon_id',
                  # are not available in all releases of Ensembl (or
                  # other GTFs)
                  if column_name not in column_set:
                      logger.info(
                          "Skipping database index for {%s}",
                          ", ".join(column_group))
                      skip = True
              if skip:
                  continue
              indices.append(column_group)
          return indices
docs: Create list of tuples containing all possible index groups
          we might want to create over tables in this database.
  
          If a set of genome annotations is missing some column we want
          to index on, we have to drop any indices which use that column.
  
          A specific table may later drop some of these indices if they're
          missing  values for that feature or are the same as the table's primary key.