public ChemComp getChemComp(String recordName) { String name = recordName.toUpperCase().trim(); InputStream inStream = this.getClass().getResourceAsStream("/chemcomp/" + name + ".cif.gz"); if (inStream == null) { // System.out.println("Could not find chem comp: " + name + " ... using generic Chem Comp"); // could not find the chem comp definition for this in the jar file logger.debug("Getting empty chem comp for " + recordName); ChemComp cc = getEmptyChemComp(); cc.setId(name); return cc; } MMcifParser parser = new SimpleMMcifParser(); ChemCompConsumer consumer = new ChemCompConsumer(); // The Consumer builds up the BioJava - structure object. // you could also hook in your own and build up you own data model. parser.addMMcifConsumer(consumer); try { parser.parse(new BufferedReader(new InputStreamReader(new GZIPInputStream(inStream)))); ChemicalComponentDictionary dict = consumer.getDictionary(); ChemComp chemComp = dict.getChemComp(name); return chemComp; } catch (IOException e) { e.printStackTrace(); } logger.warn("Problem when loading chem comp " + name); ChemComp cc = getEmptyChemComp(); cc.setId(name); return cc; }
/** Load all {@link ChemComp} definitions into memory. */ private void loadAllChemComps() { String fileName = getLocalFileName(); System.out.println("loading " + fileName); InputStreamProvider isp = new InputStreamProvider(); try { InputStream inStream = isp.getInputStream(fileName); MMcifParser parser = new SimpleMMcifParser(); ChemCompConsumer consumer = new ChemCompConsumer(); // The Consumer builds up the BioJava - structure object. // you could also hook in your own and build up you own data model. parser.addMMcifConsumer(consumer); parser.parse(new BufferedReader(new InputStreamReader(inStream))); dict = consumer.getDictionary(); } catch (Exception e) { e.printStackTrace(); } }