def parse_2nd_connectivity(self, combined_vector, no_of_edges, no_of_nodes): """ 07-03-05 get the 2nd-order connectivity, temporarily use 0.8 as cutoff """ no_of_sig_2nd_edges = 0 for i in range(no_of_edges): for j in range(i+1, no_of_edges): edge_data = graph_modeling.ind_min_cor(combined_vector[i], combined_vector[j]) no_of_sig_2nd_edges += edge_data.significance #either 1 or 0 if self.debug: sys.stderr.write("edge_cor_vectors:\n") sys.stderr.write("%s is %s.\n"%(i, repr(combined_vector[i]))) sys.stderr.write("%s is %s.\n"%(j, repr(combined_vector[j]))) sys.stderr.write("cor: %s\t significance: %s\n"%(edge_data.value, edge_data.significance)) if no_of_edges<=1: connectivity = 0 else: connectivity = no_of_sig_2nd_edges*2.0/(no_of_edges*(no_of_edges-1)) if self.debug: sys.stderr.write("2nd-order connectivity is %s.\n"%connectivity) is_continue = raw_input("Continue?(Y/n)") if is_continue=='n': sys.exit(2) return connectivity
def cor_calculate(self, output_file, significance_file, gene_index2expr_array, corCut_list, file_index): """ 06-30-05 add corCut_list and file_index, used to overwrite the internal cutoff of graph_modeling 08-01-05 fix an important bug, if corCut_list is present, first rule out edge_data.value ==1.1 """ of = open(output_file, 'w') sf = open(significance_file, 'w') #start from 0, one step by 2 for i in range(0, len(self.edge_tuple_list), 2): gene_index1 = self.edge_tuple_list[i] gene_index2 = self.edge_tuple_list[i+1] edge_data = graph_modeling.ind_min_cor(gene_index2expr_array[gene_index1], gene_index2expr_array[gene_index2]) #get the integer part of the float*1000 of.write("%s\n"%(int(math.modf(edge_data.value*1000)[1]) ) ) if corCut_list: #06-30-05 if corCut_list, overwrite the significance flag sf.write("%s\n"%int(edge_data.value<=1.0 and edge_data.value>=corCut_list[file_index])) #08-01-05, here's the bug else: sf.write("%s\n"%(edge_data.significance)) sf.close() of.close()