code: def variants(self, case_id, skip=0, count=1000, filters=None):
          filters = filters or {}
          case_obj = self.case(case_id=case_id)
          limit = count + skip
          genes = set()
          if filters.get('gene_ids'):
              genes = set([gene_id.strip() for gene_id in filters['gene_ids']])
          frequency = None
          if filters.get('frequency'):
              frequency = float(filters['frequency'])
          cadd = None
          if filters.get('cadd'):
              cadd = float(filters['cadd'])
          genetic_models = None
          if filters.get('genetic_models'):
              genetic_models = set(filters['genetic_models'])
          sv_len = None
          if filters.get('sv_len'):
              sv_len = float(filters['sv_len'])
          impact_severities = None
          if filters.get('impact_severities'):
              impact_severities = set(filters['impact_severities'])
          vcf_file_path = case_obj.variant_source
          self.head = get_header(vcf_file_path)
          self.vep_header = self.head.vep_columns
          self.snpeff_header = self.head.snpeff_columns
          variants = self._get_filtered_variants(vcf_file_path, filters)
          result = []
          skip_index = 0
          for index, variant in enumerate(variants):
              index += 1
              if skip_index >= skip:
                  variant_obj = self._format_variants(
                       variant=variant,
                       index=index,
                       case_obj=case_obj,
                  )
                  if genes and variant_obj:
                      if not set(variant_obj['gene_symbols']).intersection(genes):
                          variant_obj = None
                  if impact_severities and variant_obj:
                      if not variant_obj['impact_severity'] in impact_severities:
                          variant_obj = None
                  if frequency and variant_obj:
                      if variant_obj.max_freq > frequency:
                          variant_obj = None
                  if cadd and variant_obj:
                      if variant_obj['cadd_score'] < cadd:
                          variant_obj = None
                  if genetic_models and variant_obj:
                      models = set(variant_obj.genetic_models)
                      if not models.intersection(genetic_models):
                          variant_obj = None
                  if sv_len and variant_obj:
                      if variant_obj.sv_len < sv_len:
                          variant_obj = None
                  if variant_obj:
                      skip_index += 1
                      if skip_index <= limit:
                          result.append(variant_obj)
                      else:
                          break
              else:
                  skip_index += 1
          return Results(result, len(result))