code: private static void initializeNucleotideTemplates() throws NucleotideLoadingException {
  
      InputStream in = null;
      File localFile = new File(LOCAL_NUCLEOTIDE_TEMPLATE_FILE_PATH);
      Map<String, Map<String, String>> templates = null;
  
      if (localFile.exists()) {
        try {
          in = new FileInputStream(localFile);
          templates = buildNucleotideTemplates(in);
          validate(templates);
          logger.log(Level.INFO, LOCAL_NUCLEOTIDE_TEMPLATE_FILE_PATH
              + " is used for nucleotide templates initialization");
        } catch (Exception e) {
          logger.log(Level.INFO, "Unable to use local nucleotide templates for initialization");
          localFile.delete();
          logger.log(Level.INFO, "Deleted local nucleotide templates file");
        }
      }
  
      if (null == templates) {
        in = NucleotideFactory.class.getResourceAsStream(NUCLEOTIDE_TEMPLATE_XML_RESOURCE);
        try {
          templates = buildNucleotideTemplates(in);
          validate(templates);
        } catch (IOException | JDOMException | NotationException e) {
          throw new NucleotideLoadingException(
              "Initializing NucleotideStore failed because of "
                  + e.getClass().getSimpleName(), e);
        }
  
        logger.log(Level.INFO, NUCLEOTIDE_TEMPLATE_XML_RESOURCE
            + " is used for nucleotide templates initialization");
      }
  
      nucleotideTemplates = templates;
      reverseNucleotideMap = getReverseNucleotideTemplateMap(NotationConstant.NOTATION_SOURCE);
    }
docs: This method is called during startup, use local version if exist, otherwise
  use XML version in jar
  
  @throws NucleotideLoadingException
  
  @throws org.helm.notation2.exception.MonomerException
  @throws java.io.IOException
  @throws org.jdom.JDOMException