package org.ensembl.healthcheck.testcase.funcgen;
import java.util.Iterator;
import java.util.List;
import org.ensembl.healthcheck.DatabaseRegistryEntry;
import org.ensembl.healthcheck.ReportManager;
import org.ensembl.healthcheck.Team;
import org.ensembl.healthcheck.testcase.AbstractTemplatedTestCase;
import org.ensembl.healthcheck.util.SqlTemplate;
public class EpigenomeLinkedToEFO extends AbstractTemplatedTestCase {
public EpigenomeLinkedToEFO() {
this.setTeamResponsible(Team.FUNCGEN);
}
@Override
protected boolean runTest(DatabaseRegistryEntry dbre) {
SqlTemplate s = getTemplate(dbre);
List<String> epigenomesWithoutEFOLink = s.queryForDefaultObjectList(
"select name from epigenome where epigenome_id not in ("
+ " select "
+ " ensembl_id "
+ " from "
+ " external_db "
+ " join xref on (external_db.external_db_id=xref.external_db_id and external_db.db_name=\"EFO\") "
+ " join object_xref on (object_xref.xref_id=xref.xref_id and object_xref.ensembl_object_type=\"Epigenome\") "
+ " )",
String.class
);
if (epigenomesWithoutEFOLink.size()==0) {
return true;
}
Iterator<String> i = epigenomesWithoutEFOLink.iterator();
while (i.hasNext()) {
ReportManager.problem(this, dbre.getConnection(),
"The epigenome " + i.next() + " is not linked to the Experimental Factor Ontology."
);
}
return false;
}
}