requirements:
  expression: [(combined_cds_fraction.ncrna or combined_cds_fraction.coding) and ((exon_num.multi and (cdna_length.multi or combined_cds_length.multi) and max_intron_length and min_intron_length and proportion_verified_introns_inlocus), or,
    (exon_num.mono and (combined_cds_length.mono or cdna_length.mono)))]
  parameters:
    combined_cds_fraction.ncrna: {operator: eq, value: 0}
    combined_cds_fraction.coding: {operator: gt, value: 0.35}
    cdna_length.mono: {operator: gt, value: 800}
    cdna_length.multi: {operator: ge, value: 400}
    combined_cds_length.mono: {operator: gt, value: 300}
    combined_cds_length.multi: {operator: gt, value: 100}
    exon_num.mono: {operator: eq, value: 1}
    exon_num.multi: {operator: gt, value: 1}
    max_intron_length: {operator: le, value: 4500000}
    min_intron_length: {operator: ge, value: 5}
    proportion_verified_introns_inlocus: {operator: gt, value: 0}
not_fragmentary:
#  expression: [((exon_num.multi and (cdna_length.multi or combined_cds_length.multi)), or, (exon_num.mono and combined_cds_length.mono))]
#  parameters:
#    exon_num.multi: {operator: gt, value: 1}
#    cdna_length.multi: {operator: ge, value: 200}
#    combined_cds_length.multi: {operator: gt, value: 150}
#    exon_num.mono: {operator: eq, value: 1}
#    combined_cds_length.mono: {operator: gt, value: 600}
  expression: [combined_cds_length]
  parameters:
    combined_cds_length: {operator: gt, value: 300}
scoring:
  # blast_score: {rescaling: max}
  # cdna_length: {rescaling: max}
  # cds_not_maximal: {rescaling: min}
  # cds_not_maximal_fraction: {rescaling: min}
  # exon_fraction: {rescaling: max}
  # exon_num: {rescaling: max}
  # five_utr_length:
  #   filter: {operator: le, value: 2500}
  #   rescaling: target
  #   value: 100
  # five_utr_num:
  #   filter: {operator: lt, value: 4}
  #   rescaling: target
  #   value: 2
  # end_distance_from_junction:
  #   filter: {operator: lt, value: 55}
  #   rescaling: min
  # highest_cds_exon_number: {rescaling: max}
  # intron_fraction: {rescaling: max}
  # is_complete: {rescaling: target, value: true}
  # number_internal_orfs: {rescaling: target, value: 1}
  # proportion_verified_introns: {rescaling: max}
  # proportion_verified_introns_inlocus: {rescaling: max}
  # retained_fraction: {rescaling: min}
  # retained_intron_num: {rescaling: min}
  # selected_cds_fraction: {rescaling: target, value: 0.6}
  # selected_cds_intron_fraction: {rescaling: max}
  selected_cds_length: {rescaling: max}
  # selected_cds_num: {rescaling: max}
  # three_utr_length:
  #   filter: {operator: le, value: 2500}
  #   rescaling: target
  #   value: 300
  # three_utr_num:
  #   filter: {operator: lt, value: 3}
  #   rescaling: target
  #   value: 1
