package org.isatools.isacreator.ontologymanager;
import org.isatools.isacreator.configuration.Ontology;
import org.isatools.isacreator.ontologymanager.common.OntologyTerm;
import org.junit.Test;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import static org.junit.Assert.assertTrue;
/**
* Created by eamonnmaguire on 17/12/2013.
*/
public class BioPortalClient4Test {
private BioPortal4Client client = new BioPortal4Client();
private String testOntologySource = "EFO";
private String testTermAccession = "http://www.ebi.ac.uk/efo/EFO_0000428";
private String testSearchTerm = "assay";
private String ontologyId = "http://data.bioontology.org/ontologies/EFO";
private String obiOntologyId = "http://data.bioontology.org/ontologies/OBI";
@Test
public void exactSearchTest(){
System.out.println("_____Testing exactSearch()____");
Map<String, List<OntologyTerm>> result = client.exactSearch(testSearchTerm, obiOntologyId);
List<OntologyTerm> terms = result.get(obiOntologyId);
OntologyTerm term = terms.get(0);
System.out.println("term URI ="+term.getOntologyTermURI());
}
@Test
public void getTermTest(){
System.out.println("_____Testing getTerm()____");
OntologyTerm result = client.getTerm(testTermAccession, ontologyId);
System.out.println(result.getOntologyTermName() + " - " + result.getOntologySource() + " - " + result.getOntologyTermURI() );
}
@Test
public void getTermsByPartialNameFromSource1Test() {
System.out.println("_____Testing getTermsByPartialNameFromSource()____");
long startTime = System.currentTimeMillis();
Map<OntologySourceRefObject, List<OntologyTerm>> result = client.getTermsByPartialNameFromSource(testSearchTerm, obiOntologyId, false);
System.out.println("Took " + (System.currentTimeMillis() - startTime) + "ms to do query '" + testSearchTerm +"' in OBI.");
for (OntologySourceRefObject source : result.keySet()) {
System.out.println(source.getSourceName() + " (" + source.getSourceVersion() + ")");
for (OntologyTerm term : result.get(source)) {
System.out.println("\t" + term.getOntologyTermName() + " (" + term.getOntologyTermAccession() + ")");
}
}
}
@Test
public void getTermsByPartialNameFromSource2Test() {
long startTime = System.currentTimeMillis();
Map<OntologySourceRefObject, List<OntologyTerm>> result = client.getTermsByPartialNameFromSource(testSearchTerm, "all", false);
System.out.println("Took " + (System.currentTimeMillis() - startTime) + "ms to do that query.");
for (OntologySourceRefObject source : result.keySet()) {
System.out.println(source.getSourceName() + " (" + source.getSourceVersion() + ")");
for (OntologyTerm term : result.get(source)) {
System.out.println("\t" + term.getOntologyTermName() + " (" + term.getOntologyTermAccession() + ")");
}
}
}
@Test
public void getTermsByPartialNameFromSource3Test() {
long startTime = System.currentTimeMillis();
Map<OntologySourceRefObject, List<OntologyTerm>> result = client.getTermsByPartialNameFromSource("cy5", "all", false);
System.out.println("Took " + (System.currentTimeMillis() - startTime) + "ms to do that query.");
for (OntologySourceRefObject source : result.keySet()) {
System.out.println(source.getSourceName() + " (" + source.getSourceVersion() + ")");
for (OntologyTerm term : result.get(source)) {
System.out.println("\t" + term.getOntologyTermName() + " (" + term.getOntologyTermAccession() + ")");
}
}
}
@Test
public void getTermMetadata() {
System.out.println("_____Testing getTermMetadata()____");
Map<String, String> termInfo = client.getTermMetadata(testTermAccession, ontologyId);
assertTrue("Oh no! No additional information for term! ", termInfo.size() > 0);
}
@Test
public void getAllOntologies() {
System.out.println("_____Testing getAllOntologies()____");
Collection<Ontology> ontologies = client.getAllOntologies();
assertTrue("Oh no! No returned ontologies (empty result)! ", ontologies.size() > 0);
System.out.println("Found " + ontologies.size() + " ontologies \n");
for (Ontology ontology : ontologies) {
System.out.println(ontology.getOntologyID() + " - " + ontology.getOntologyAbbreviation() + " -> " + ontology.getOntologyDisplayLabel()
+ " -> " + ontology.getOntologyVersion() + " - " + ontology.getHomepage() + " " + ontology.getContactName());
}
}
@Test
public void getOntologyRoots() {
System.out.println("_____Testing getOntologyRoots()____");
Map<String, OntologyTerm> ontologyRoots = client.getOntologyRoots(testOntologySource);
assertTrue("No ontology roots found for " + testOntologySource, ontologyRoots.size() > 0);
for(String key : ontologyRoots.keySet()) {
System.out.println(key + " - " + ontologyRoots.get(key).getOntologyTermName());
}
}
@Test
public void getTermParents() {
System.out.println("_____Testing getTermChildrenOrParents()____");
Map<String, OntologyTerm> parentTerms = client.getAllTermParents(testTermAccession, testOntologySource);
assertTrue("No parents roots found for " + testTermAccession, parentTerms.size() > 0);
for (OntologyTerm term : parentTerms.values()) {
System.out.println(term);
}
System.out.println("Found " + parentTerms.size() + " parents for 45781");
}
@Test
public void getTermChildren() {
System.out.println("_____Testing getTermChildrenOrParents()____");
Map<String, OntologyTerm> childTerms = client.getTermChildren("http://purl.obolibrary.org/obo/IAO_0000030", testOntologySource);
assertTrue("No children found for " + testTermAccession, childTerms.size() > 0);
for (OntologyTerm term : childTerms.values()) {
System.out.println(term);
}
System.out.println("Found " + childTerms.size() + " children for information entity in " + testOntologySource);
}
}