public ChEBIGenerics() {
try {
cache = new HashMap<String,List<String>>();
sp = new SmilesParser(DefaultChemObjectBuilder.getInstance());
ha = new HydrogenAdder(new ValencyHybridChecker());
OBOOntology o = OBOOntology.getInstance();
qacs = new HashMap<String, QueryAtomContainer>();
qsmiles = new HashMap<String, String>();
qid = new HashMap<String, String>();
for(String id : o.getTerms().keySet()) {
if(!id.startsWith("CHEBI:")) continue;
OntologyTerm term = o.getTerms().get(id);
String name = term.getName();
if(badQueries.contains(name)) continue;
if(name.startsWith("graph")) continue;
if(name.matches(".*(muonium|protide|protium|protide|positronium).*")) continue;
String smiles = null;