print "Target data subsampling loop" for i in range(len(percs)): n_trg_perc = np.int(n_trg * percs[i]) p_trg = trg[:, inds[:n_trg_perc]].copy() p_trg_labels = trg_labels[inds[:n_trg_perc]].copy() # 4. MTL/DA mixing parameter loop res_desc = list() for m in range(len(methods)): print( 'Running experiment {0} of {1}: Train target data of repetition {2} - {3} source cells, {4} genes, ' '{5} target cells and the {6}th method'.format( exp_counter, num_exps, r + 1, n_src[s], genes, n_trg_perc, m + 1)) #plt.subplot(len(percs), len(methods), plot_cnt) source_nmf.cell_filter_list = list() source_nmf.gene_filter_list = list() # source data is already filtered and transformed ... source_nmf.add_cell_filter( lambda x: np.arange(x.shape[1]).tolist()) source_nmf.add_gene_filter( lambda x: np.arange(x.shape[0]).tolist()) source_nmf.set_data_transformation(lambda x: x) desc, target_nmf, trg_lbls_pred, mixed_data = methods[m]( source_nmf, p_trg.copy(), p_trg_labels.copy(), n_trg_cluster=num_cluster) res_desc.append(desc) print "Evaluation of target results" accs_desc = list()
trg_labels[trg_clustering.remain_cell_inds], trg_clustering.cluster_labels) print ' -ARI: ', accs[4, j, i] # -------------------------------------------------- # 5. SAVE RESULTS # -------------------------------------------------- trg_clustering.cell_filter_list = None trg_clustering.gene_filter_list = None trg_clustering.data_transf = None if arguments.method is 'SC3': trg_clustering.dists_list = None trg_clustering.dimred_list = None trg_clustering.intermediate_clustering_list = None if src_clustering is not None: src_clustering.cell_filter_list = None src_clustering.gene_filter_list = None src_clustering.data_transf = None print('\nSaving data structures and results to file with prefix \'{0}_m{1}_c{2}\'.'.format(arguments.fout, mix, trg_k)) np.savez('{0}_m{1}_c{2}.npz'.format(arguments.fout, mix, trg_k), src=src_clustering, trg=trg_clustering, args=arguments) np.savetxt('{0}_m{1}_c{2}.labels.tsv'.format(arguments.fout, mix, trg_k), (trg_clustering.cluster_labels, trg_clustering.remain_cell_inds), fmt='%u', delimiter='\t') # -------------------------------------------------- # 6. SUMMARIZE RESULTS # -------------------------------------------------- print 'Mixtures:', mixtures print 'Cluster:', num_cluster plt.figure(0) for i in range(accs.shape[0]): plt.subplot(2, 3, i+1)
metric='spearman') print ' -KTA (linear) : ', accs[0, i] print ' -Silhouette (euc) : ', accs[1, i] print ' -Silhouette (pear): ', accs[2, i] print ' -Silhouette (spea): ', accs[3, i] if labels is not None: print('\nSupervised evaluation:') accs[4, i] = metrics.adjusted_rand_score(labels[nmf.remain_cell_inds], nmf.cluster_labels) print ' -ARI: ', accs[4, i] # -------------------------------------------------- # 3.3. SAVE RESULTS # -------------------------------------------------- nmf.cell_filter_list = None nmf.gene_filter_list = None nmf.data_transf = None print( '\nSaving data structures and results to file with prefix \'{0}_c{1}\'.' .format(arguments.fout, k)) np.savez('{0}_c{1}.npz'.format(arguments.fout, k), src=nmf, args=arguments) np.savetxt('{0}_c{1}_labels.tsv'.format(arguments.fout, k), (nmf.cluster_labels, nmf.remain_cell_inds), fmt='%u', delimiter='\t') # -------------------------------------------------- # 3.4. T-SNE PLOT # -------------------------------------------------- if arguments.tsne: model = TSNE(n_components=2,