package org.nextprot.api.commons.constants;
/**
* Description: Used to turn some XRefs into Annotations<br> *
* @author Pam
*/
public enum Xref2Annotation {
ORPHANET("Orphanet", "disease", AnnotationCategory.DISEASE.getDbAnnotationTypeName(),
"Orphanet","GOLD","curated", "IC","ECO:0000305", "curator inference used in manual assertion"),
// GOLD => SILVER, see https://issues.isb-sib.ch/browse/NEXTPROT-1139
REACTOME("Reactome", "pathway name", AnnotationCategory.PATHWAY.getDbAnnotationTypeName(),
"Reactome","GOLD","curated","IC","ECO:0000305", "curator inference used in manual assertion"),
DRUGBANK("DrugBank", "generic name", AnnotationCategory.SMALL_MOLECULE_INTERACTION.getDbAnnotationTypeName(),
"DrugBank","GOLD","curated","IC","ECO:0000305", "curator inference used in manual assertion"),
KEGGPATHWAY("KEGGPathway", "pathway name", AnnotationCategory.PATHWAY.getDbAnnotationTypeName(),
"KEGG_PTW","GOLD","curated","IC","ECO:0000305", "curator inference used in manual assertion"),
TCDB("TCDB", "family name", AnnotationCategory.TRANSPORT_ACTIVITY.getDbAnnotationTypeName(),
"TCDB","GOLD","curated","IC","ECO:0000305", "curator inference used in manual assertion")
;
private final String xrefDbName; // refers to an existing cv_name in cv_databases table
private final String annotCat;
private final String srcName; // refers to an existing cv_name in cv_datasources table
private final String xrefPropName;
private final String qualityQualifier;
private final String assignmentMethod;
private final String qualifierType;
private final String ecoAC;
private final String ecoName;
Xref2Annotation(final String xrefDbName,
final String xrefPropName, final String annotCat, final String srcName,
final String qualityQualifier, final String assignMethod, final String qualifierType, String ecoAC, String ecoName) {
this.xrefDbName=xrefDbName;
this.xrefPropName=xrefPropName;
this.annotCat=annotCat;
this.srcName=srcName;
this.qualityQualifier=qualityQualifier;
this.qualifierType=qualifierType;
this.assignmentMethod=assignMethod;
this.ecoAC=ecoAC;
this.ecoName=ecoName;
}
public String getEcoAC() {
return ecoAC;
}
public String getEcoName() {
return ecoName;
}
public String getXrefDbName() {
return xrefDbName;
}
public String getXrefPropName() {
return xrefPropName;
}
public String getAnnotCat() {
return annotCat;
}
public String getSrcName() {
return srcName;
}
public String getQualityQualifier() {
return qualityQualifier;
}
public String getAssignmentMethod() {
return assignmentMethod;
}
public String getQualifierType() {
return qualifierType;
}
public String getEcoOntology() {
return "EvidenceCodeOntologyCv";
}
public static Xref2Annotation getByDatabaseName(String dbName) {
for (Xref2Annotation m : Xref2Annotation.values()) {
if(m.xrefDbName.equals(dbName)) return m;
}
throw new RuntimeException("Could not find XrefAnnotationMapping for database name: " + dbName);
}
public static boolean hasName(String name) {
for (Xref2Annotation m : Xref2Annotation.values()) {
if(m.xrefDbName.equals(name)) return true;
}
return false;
}
}