private MaccsKey[] readKeyDef(final IChemObjectBuilder builder) throws IOException, CDKException { List<MaccsKey> keys = new ArrayList<MaccsKey>(166); BufferedReader reader = new BufferedReader(new InputStreamReader(getClass() .getResourceAsStream(KEY_DEFINITIONS))); // now process the keys String line; while ((line = reader.readLine()) != null) { if (line.charAt(0) == '#') continue; String data = line.substring(0, line.indexOf('|')).trim(); String[] toks = data.split("\\s"); keys.add(new MaccsKey(toks[1], createPattern(toks[1], builder), Integer.parseInt(toks[2]))); } if (keys.size() != 166) throw new CDKException("Found " + keys.size() + " keys during setup. Should be 166"); return keys.toArray(new MaccsKey[166]); }