void ComputeConstructedSingletons() { for(auto it = constructed_clusters_.clusters_begin(); it != constructed_clusters_.clusters_end(); it++) if(constructed_clusters_.IsClusterSingleton(it->first)) { metrics_.constructed_metrics.num_singletons++; auto read_name = constructed_reads_[(it->second)[0]]; if(original_clusters_.IsClusterSingleton(original_clusters_.GetCluster(read_name))) metrics_.constructed_metrics.num_corr_singletons++; } metrics_.correct_singletons = metrics_.constructed_metrics.num_corr_singletons; }
void ComputeNotMergedMetrics() { double sum_fill = 0; for(auto it = original_clusters_.clusters_begin(); it != original_clusters_.clusters_end(); it++) { size_t orig_cluster_ind = it->first; if(original_clusters_.IsClusterSingleton(orig_cluster_ind)) continue; // for each non trivial cluster we compute it "not merged" if(!IsClusterNotMerged(orig_cluster_ind)) continue; metrics_.original_metrics.num_not_merged++; if(IsClusterBigAndSingletons(orig_cluster_ind)) metrics_.original_metrics.num_nm_big_singletons++; size_t orig_cluster_size = original_clusters_.ClusterSize(orig_cluster_ind); double orig_cluster_fill = ComputeNotMergedFillin(orig_cluster_ind); sum_fill += orig_cluster_fill; } metrics_.avg_fillin = sum_fill / metrics_.original_metrics.num_not_merged; }
void ComputeOriginalSingletons() { for(auto it = original_clusters_.clusters_begin(); it != original_clusters_.clusters_end(); it++) if(original_clusters_.IsClusterSingleton(it->first)) metrics_.original_metrics.num_singletons++; }