kaleidocell.find_optimal_n_mp#

kaleidocell.find_optimal_n_mp(nmf_programs_all, k_range=range(2, 31), linkage_method='ward', verbose=True)[source]#

Determine the optimal number of meta-programs via silhouette score.

Parameters:
  • nmf_programs_all (pd.DataFrame) – Gene × programs loading matrix.

  • k_range (iterable, default range(2, 31)) – Candidate numbers of clusters to evaluate.

  • linkage_method (str, default "ward") – Linkage criterion for hierarchical clustering.

  • verbose (bool, default True) – Print the selected value.

Returns:

(optimal_k, scores_dict) where scores_dict maps each k to its average silhouette score.

Return type:

tuple