def run(blast_filename): filename = c.step1_process_blast('',blast_filename,30) return g = read_gpickle(filename) g.delete_nodes_from(filter(lambda n: g.degree(n)<=2, g.nodes_iter())) g_nodes = g.nodes() print >> sys.stderr, "number of nodes...",g.number_of_nodes() S, H = p.convert_graph_connectivity_to_sparse(g, g_nodes) valid_rows = range(g.number_of_nodes()) QQ = [] last_QQ_size = 0 failed_count = 0 while failed_count < 10: p.get_cliques(S, H, QQ, 0.8, 10, valid_rows) if len(QQ) == last_QQ_size: failed_count += 1 else: failed_count = 0 last_QQ_size += 1 f = open(blast_filename+'.gamma80iter10.cliques','w') for q in QQ: f.write(" ".join(map(lambda x: g_nodes[x], q))+"\n") print >> sys.stderr, "output written to....",f.name f.close()
import os,re,sys from networkx import * from networkx.readwrite import * from cPickle import * import cluster_steps as c from miscMySQL import * dirname = 'output/output_blast_etc/ALLFirm_RefSeq25_m30s0/' conn = get_conn_Firm() cursor = conn.cursor() nodes_to_index = c.get_nodes_to_index_from_db(cursor) G = Graph() while G.number_of_edges() < 2100000: cursor.execute("select filename from files_todo order by rand() limit 1") try: filename = cursor.fetchone()[0] except: print >> sys.stderr, "couldn't fetch a file to process....no more?" break cursor.execute("delete from files_todo where filename=\"{0}\"".format(filename)) print >> sys.stderr, filename c.step1_process_blast(dirname+filename, 35, nodes_to_index, G)