requirements:
  expression: [(combined_cds_fraction.ncrna or combined_cds_fraction.coding) and ((exon_num.multi and cdna_length.multi and max_intron_length and min_intron_length and verified_introns_num), 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: 200}
    cdna_length.multi: {operator: ge, value: 100}
    combined_cds_length.mono: {operator: gt, value: 100}
    exon_num.mono: {operator: eq, value: 1}
    exon_num.multi: {operator: gt, value: 1}
    max_intron_length: {operator: le, value: 20000}
    min_intron_length: {operator: ge, value: 5}
    verified_introns_num: {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: 200}
  expression: [combined_cds_length]
  parameters:
    combined_cds_length: {operator: gt, value: 0}
scoring:
  blast_score: {rescaling: max}
  cdna_length: {rescaling: max}
  cds_not_maximal: {rescaling: min}
  cds_not_maximal_fraction: {rescaling: min}
  exon_num: {rescaling: min}
  five_utr_length:
    filter: {operator: le, value: 50}
    rescaling: target
    value: 0
  five_utr_num:
    filter: {operator: lt, value: 2}
    rescaling: target
    value: 1
  end_distance_from_junction:
    filter: {operator: lt, value: 55}
    rescaling: min
  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: 1}
  selected_cds_intron_fraction: {rescaling: max}
  selected_cds_length: {rescaling: max}
  selected_cds_num: {rescaling: max}
  three_utr_length:
    filter: {operator: le, value: 50}
    rescaling: target
    value: 0
  three_utr_num:
    filter: {operator: lt, value: 3}
    rescaling: target
    value: 1
