コード例 #1
0
ファイル: codense2db.py プロジェクト: polyactis/annot
	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
コード例 #2
0
	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()