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 ( ) ) ; } } } }
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 .