/**
   * Identify a set of modifications in a structure.
   *
   * @param structure query {@link Structure}.
   * @param potentialModifications query {@link ProteinModification}s.
   */
  public void identify(
      final Structure structure, final Set<ProteinModification> potentialModifications) {
    if (structure == null) {
      throw new IllegalArgumentException("Null structure.");
    }

    identify(structure.getChains(), potentialModifications);
  }
  public static void main(String[] args) {

    try {
      FileParsingParameters params = new FileParsingParameters();
      params.setParseSecStruc(true);

      AtomCache cache = new AtomCache();
      cache.setFileParsingParams(params);

      Structure s = cache.getStructure("4hhb");

      for (Chain c : s.getChains()) {
        for (Group g : c.getAtomGroups()) {

          if (g instanceof AminoAcid) {

            AminoAcid aa = (AminoAcid) g;

            Map<String, String> sec = aa.getSecStruc();

            System.out.println(
                c.getChainID()
                    + " "
                    + g.getResidueNumber()
                    + " "
                    + g.getPDBName()
                    + " "
                    + " "
                    + sec);
          }
        }
      }

    } catch (Exception e) {

      e.printStackTrace();
    }
  }