/*
  # UniProt ENZYME annotations

  UniProt annotates *entries* with ENZYME (partial) codes. This graph adds an edge connecting the canonical protein of an entry with the ENZYME codes with which the entry is annotated.
*/
package com.bio4j.model;

import com.bio4j.angulillos.*;
import com.bio4j.angulillos.Arity.*;

public final class UniProtENZYMEGraph<V,E> extends TypedGraph<UniProtENZYMEGraph<V,E>,V,E> {

  public UniProtENZYMEGraph(UniProtGraph<V,E> uniProtGraph, ENZYMEGraph<V,E> enzymeGraph) {

    super(uniProtGraph.raw());
    this.uniProtGraph = uniProtGraph;
    this.enzymeGraph = enzymeGraph;
  }

  public final UniProtGraph<V,E> uniProtGraph;
  public final ENZYMEGraph<V,E> enzymeGraph;

  @Override public final UniProtENZYMEGraph<V,E> self() { return this; }

  // TODO add edge here
}

@@ -52,171 +52,1896 @@
 tes 
-*
 entries
-* with ENZYME (partial) codes. This graph adds an edge connecting the canonical protein of an entry with the ENZYME codes with which the entry is annotated
+, proteins, domains and whatnot with ENZYME classes, subclasses, subsubclasses or enzymes.%0A%0A  ## What are these annotations?%0A%0A  The only documentation for this is included in these %5Brelease notes%5D(http://www.uniprot.org/help/2007/10/23/release). Quoting from there:%0A%0A  %3E  In the UniProt Knowledgebase some enzymes are assigned so-called partial EC numbers where part of the numbers are replaced by dashes (e.g. EC 3.4.24.-). This happens in the following situations:%0A  %3E%0A  %3E  1. The catalytic activity of the protein is not known exactly.%0A  %3E  2. The protein catalyzes a reaction that is known, but not yet included in the IUBMB EC list.%0A%0A  Now compare that with %5BP15291 xml%5D(http://www.uniprot.org/uniprot/P15291.xml). There we have%0A%0A  - %60%3CecNumber%3E2.4.1.-%3C/ecNumber%3E%60 for the %60%3Cprotein%3E%60 element%0A  - *Precise* enzyme codes for domains, which are modeled as just *names* for the protein: %60%3CecNumber%3E2.4.1.22%3C/ecNumber%3E%60 for %60Lactose synthase A protein%60, or %60%3CecNumber%3E2.4.1.90%3C/ecNumber%3E%60 for %60N-acetyllactosamine synthase%60%0A%0A  Then as cross-reference to ENZYME we have all of them together, with no scope or anything%0A%0A  %60%60%60 xml%0A  %3CdbReference type=%22EC%22 id=%222.4.1.-%22/%3E%0A  %3CdbReference type=%22EC%22 id=%222.4.1.22%22/%3E%0A  %3CdbReference type=%22EC%22 id=%222.4.1.90%22/%3E%0A  %3CdbReference type=%22EC%22 id=%222.4.1.38%22/%3E%0A  %60%60%60%0A%0A  If you search for the ENZYME cross-ref description in %5Bthis somewhat hidden flat-text file%5D(http://www.uniprot.org/docs/dbxref) you will read there %22*Implicit; All UniProtKB entries that contain %3E=1 EC numbers in their description lines*%22.%0A%0A  So clearly this is not any of 1., 2. quoted above; it's just a bad data model where entities are hidden behind strings. All in all, these enzyme annotations are unreliable, badly modeled, and hard to interpret. Our choice is to have edges linking the canonical protein of an entry to ENZYME classes, subclasses, subsubclasses, or enzymes
 .%0A*/
@@ -2091,13 +2091,12 @@
 nds 
-Typed
+Link
 Grap

add documentation for UniProt Enzyme "annotations"