docs: def get_pca_ks_stats(self, maxrange=5):
          """Get a dictionary of PC#: K-S test stat for each """
          pc_to_phenotype_pairs = {}
          num_components = self.principal_observations_df.shape[1]
          if num_components < maxrange:
              maxrange = num_components
  
          phenotypes = self.principal_observations_df.phenotype.unique().tolist()
          for i in range(0, maxrange):
              phenotype_pair_to_ks = {}
              for p1, p2 in combinations(phenotypes, 2):
                  p1_pc = self.principal_observations_df[self.principal_observations_df.phenotype == p1].iloc[:,i].as_matrix()
                  p2_pc = self.principal_observations_df[self.principal_observations_df.phenotype == p2].iloc[:,i].as_matrix()
                  phenotype_pair_to_ks[(p1, p2)] = ks_2samp(p1_pc, p2_pc)
              pc_to_phenotype_pairs[i + 1] = phenotype_pair_to_ks
  
          return pc_to_phenotype_pairs