code: protected int compatibilityGraphNodes() throws IOException {
  
          compGraphNodes.clear();
          List<IAtom> basicAtomVecA = null;
          List<IAtom> basicAtomVecB = null;
          IAtomContainer reactant = source;
          IAtomContainer product = target;
  
          basicAtomVecA = reduceAtomSet(reactant);
          basicAtomVecB = reduceAtomSet(product);
  
          List<List<Integer>> labelListMolA = labelAtoms(reactant);
          List<List<Integer>> labelListMolB = labelAtoms(product);
  
          int molANodes = 0;
          int countNodes = 1;
  
          for (List<Integer> labelA : labelListMolA) {
              int molBNodes = 0;
              for (List<Integer> labelB : labelListMolB) {
                  if (labelA.equals(labelB)) {
                      compGraphNodes.add(reactant.indexOf(basicAtomVecA.get(molANodes)));
                      compGraphNodes.add(product.indexOf(basicAtomVecB.get(molBNodes)));
                      compGraphNodes.add(countNodes++);
                  }
                  molBNodes++;
              }
              molANodes++;
          }
          return 0;
      }
docs: Generate Compatibility Graph Nodes
  
  @return
  @throws IOException