docs: def parse_filters():
      """Parse variant filters from the request object."""
      genes_str = request.args.get('gene_symbol')
      filters = {}
      for key in ('frequency', 'cadd', 'sv_len'):
          try:
              filters[key] = float(request.args.get(key))
          except (ValueError, TypeError):
              pass
  
      filters['gene_symbols'] = genes_str.split(',') if genes_str else None
      filters['selected_models'] = request.args.getlist('inheritance_models')
      filters['selected_consequences'] = request.args.getlist('consequences')
      filters['selected_sv_types'] = request.args.getlist('sv_types')
      filters['skip'] = int(request.args.get('skip', 0))
      filters['gene_lists'] = request.args.getlist('gene_lists')
      filters['gemini_query'] = (request.args.get('gemini_query') or
                                 request.args.get('preset_gemini_query'))
      filters['impact_severities'] = request.args.getlist('impact_severities')
      filters['range'] = None
  
      if request.args.get('range'):
          chromosome, raw_pos = request.args.get('range').split(':')
          start, end = map(int, raw_pos.split('-'))
          filters['range'] = {'chromosome': chromosome, 'start': start,
                              'end': end}
  
      filters['query_dict'] = {key: request.args.getlist(key) for key
                               in request.args.keys()}
      filters['query_dict'].update({'skip': (filters['skip'] + 30)})
  
      return filters