entity_types:
  - &protein
      id: PR:000000001
      name: protein
  - &chemical_entity
      id: CHEBI:24431
      name: chemical entity
  - &gene
      id: SO:0000704
      name: gene
  - &protein_complex
      id: GO:0032991
      name: protein-cotaining complex
  - &genotype
      id: SO:0001027
      name: genotype
  - &variation
      id: VariO:0001
      name: variation
  - &protein_family
      id: NCIT:C20130
      name: protein family
  - &polypeptide_region
      id: SO:0000839
      name: polypeptide region
  - &rule
      id: IAO:0000055
      name: rule
  - &biological_process
      id: GO:0008150
      name: biological_process
  - &cellular_component
      id: GO:0005575
      name: cellular component
  - &molecular_function
      id: GO:0003674
      name: molecular_function
  - &vocabulary
      id: SIO:001080
      name: vocabulary
  - &catalytic_activity
      id: GO:0003824
      name: catalytic activity
  - &phenotype
      id: UPHENO:0001001
      name: phenotype
  - &rna
      id: CHEBI:33697
      name: ribonucleic acid
  - &primary_transcript
      id: SO:0000185
      name: primary transcript

eco_usage_constraints:
  - eco_id: ECO:0000353
    go_evidence: IPI
    with_presence: conditional
    with_presence_condition:
      condition: db_object_type eq 'complex'
      when_false: mandatory
      when_true: optional
    with_structure: compound
    with_entities:
      - entity_type: *protein
      - entity_type: *chemical_entity
      - entity_type: *gene
      - entity_type: *protein_complex
      - entity_type: *rna
  - eco_id: ECO:0000316
    go_evidence: IGI
    with_presence: mandatory
    with_structure: compound
    with_entities:
      - entity_type: *gene
      - entity_type: *genotype
      - entity_type: *protein
      - entity_type: *variation
      - entity_type: *protein_complex
      - entity_type: *rna
  - eco_id: ECO:0000318
    go_evidence: IBA
    with_presence: mandatory
    with_structure: simple
    with_entities:
      - entity_type: *gene
      - entity_type: *protein
      - entity_type: *protein_family
      - entity_type: *rna
      - entity_type: *primary_transcript
  - eco_id: ECO:0000319
    go_evidence: IBD
    with_presence: mandatory
    with_structure: simple
    with_entities:
      - entity_type: *gene
      - entity_type: *protein
      - entity_type: *protein_family
      - entity_type: *rna
  - eco_id: ECO:0000320
    go_evidence: IKR
    with_presence: conditional
    with_presence_condition:
      condition: reference matches '^GO_REF:[0-9]{7}$'
      when_false: optional
      when_true: mandatory
    with_structure: simple
    with_entities:
      - entity_type: *polypeptide_region
      - entity_type: *protein
      - entity_type: *rule
  - eco_id: ECO:0000321
    go_evidence: IRD
    with_presence: mandatory
    with_structure: simple
    with_entities:
      - entity_type: *gene
      - entity_type: *protein
      - entity_type: *protein_family
      - entity_type: *rna
  - eco_id: ECO:0000250
    go_evidence: ISS
    with_presence: mandatory
    with_structure: simple
    with_entities:
      - entity_type: *gene
      - entity_type: *protein
      - entity_type: *protein_complex
      - entity_type: *rna
  - eco_id: ECO:0000266
    go_evidence: ISO
    with_presence: mandatory
    with_structure: simple
    with_entities:
      - entity_type: *gene
      - entity_type: *protein
      - entity_type: *protein_family
      - entity_type: *protein_complex
      - entity_type: *rna
  - eco_id: ECO:0000247
    go_evidence: ISA
    with_presence: mandatory
    with_structure: simple
    with_entities:
      - entity_type: *gene
      - entity_type: *protein
      - entity_type: *polypeptide_region
      - entity_type: *protein_family
      - entity_type: *rna
  - eco_id: ECO:0000305
    go_evidence: IC
    with_presence: mandatory
    with_structure: compound
    with_entities:
      - entity_type: *biological_process
      - entity_type: *cellular_component
      - entity_type: *molecular_function
  - eco_id: ECO:0000501
    go_evidence: IEA
    with_presence: mandatory
    with_structure: simple
    with_entities:
      - entity_type: *gene
      - entity_type: *protein
      - entity_type: *polypeptide_region
      - entity_type: *rule
      - entity_type: *vocabulary
      - entity_type: *catalytic_activity
      - entity_type: *biological_process
      - entity_type: *protein_complex
      - entity_type: *rna      
  - eco_id: ECO:0007322
    go_evidence: IEA
    with_presence: mandatory
    with_structure: simple
    with_entities:
      - entity_type: *vocabulary
  - eco_id: ECO:0000255
    go_evidence: ISM
    with_presence: recommended
    with_structure: simple
    with_entities:
      - entity_type: *polypeptide_region
  - eco_id: ECO:0000317
    go_evidence: IGC
    with_presence: recommended
    with_structure: compound
    with_entities:
      - entity_type: *gene
      - entity_type: *protein
      - entity_type: *biological_process
      - entity_type: *rna
  - eco_id: ECO:0007003
    go_evidence: HGI
    with_presence: mandatory
    with_structure: compound
    with_entities:
      - entity_type: *gene
      - entity_type: *genotype
      - entity_type: *protein
      - entity_type: *variation
      - entity_type: *protein_complex
      - entity_type: *rna
  - eco_id: ECO:0000315
    go_evidence: IMP
    with_presence: optional
    with_structure: compound
    with_entities:
      - entity_type: *gene
      - entity_type: *phenotype
      - entity_type: *genotype
      - entity_type: *protein
      - entity_type: *variation
      - entity_type: *chemical_entity
      - entity_type: *protein_complex
      - entity_type: *rna
  - eco_id: ECO:0000245
    go_evidence: RCA
    with_presence: optional
    with_structure: simple
    with_entities:
      - entity_type: *gene
      - entity_type: *protein
      - entity_type: *polypeptide_region
      - entity_type: *rule
      - entity_type: *vocabulary
      - entity_type: *catalytic_activity
      - entity_type: *biological_process
      - entity_type: *protein_complex
      - entity_type: *rna
  - eco_id: ECO:0007001
    go_evidence: HMP
    with_presence: optional
    with_structure: compound
    with_entities:
      - entity_type: *gene
      - entity_type: *phenotype
      - entity_type: *genotype
      - entity_type: *protein
      - entity_type: *variation
      - entity_type: *chemical_entity
      - entity_type: *protein_complex
      - entity_type: *rna
  - eco_id: ECO:0000269
    go_evidence: EXP
    with_presence: disallowed
  - eco_id: ECO:0000314
    go_evidence: IDA
    with_presence: disallowed
  - eco_id: ECO:0000270
    go_evidence: IEP
    with_presence: disallowed
  - eco_id: ECO:0000304
    go_evidence: TAS
    with_presence: disallowed
  - eco_id: ECO:0000303
    go_evidence: NAS
    with_presence: disallowed
  - eco_id: ECO:0000307
    go_evidence: ND
    with_presence: disallowed
  - eco_id: ECO:0006056
    go_evidence: HTP
    with_presence: disallowed
  - eco_id: ECO:0007005
    go_evidence: HDA
    with_presence: disallowed
  - eco_id: ECO:0007007
    go_evidence: HEP
    with_presence: disallowed
  - eco_id: ECO:0005610
    with_presence: mandatory
    with_structure: simple
    with_entities:
      - entity_type: *protein_complex
  - eco_id: ECO:0005547
    with_presence: disallowed
  - eco_id: ECO:0005543
    with_presence: disallowed
  - eco_id: ECO:0005542
    with_presence: disallowed
