code: private static void validateGenotypes(Map<String, Set<Integer>> gt, PedigreeManager pedigreeManager) {
          List<Member> withoutChildren = pedigreeManager.getWithoutChildren();
  
          Queue<String> queue = new LinkedList<>();
  
          for (Member member : withoutChildren) {
              queue.add(member.getId());
          }
  
          while (!queue.isEmpty()) {
              String individualId = queue.remove();
              Member member = pedigreeManager.getIndividualMap().get(individualId);
              processIndividual(member, gt);
  
              if (member.getFather() != null) {
                  if (!queue.contains(member.getFather().getId())) {
                      queue.add(member.getFather().getId());
                  }
              }
  
              if (member.getMother() != null) {
                  if (!queue.contains(member.getMother().getId())) {
                      queue.add(member.getMother().getId());
                  }
              }
          }
  
  
      }
docs: Validate and removes and genotypes that does not make sense given the parent - child relation.
  This method should only be called under dominant, recessive and x-linked modes of inheritance. It does not support y-linked modes
  where the mother does not have a possible genotype.
  
  @param gt              Map of individual id - set of possible genotypes.
  @param pedigreeManager Pedigree manager.