/**
   * Method that combines the fingerprint evidence across all the read groups for the same library
   * and then produces a matrix of LOD scores for comparing every library with every other library.
   */
  private void crossCheckLibraries(
      final Map<SAMReadGroupRecord, Fingerprint> fingerprints, final PrintStream out) {
    final List<Fingerprint> fixedFps = new ArrayList<>();
    for (final SAMReadGroupRecord rg : fingerprints.keySet()) {
      final Fingerprint old = fingerprints.get(rg);
      final String name = rg.getSample() + "::" + rg.getLibrary();
      final Fingerprint newFp = new Fingerprint(name, old.getSource(), old.getInfo());
      newFp.putAll(old);

      fixedFps.add(newFp);
    }

    crossCheckSamples(fixedFps, out);
  }