def getDBmotif_dist_zpkl(dbname): care=CAREdb(dbname) zpklfile="%s_motif_dist_db.zpkl" % dbname.split('.')[0] if os.path.exists(zpklfile): zf = ZipFile(zpklfile, 'r', ZIP_DEFLATED) motifs_zipped=[m.split('.')[0] for m in zf.namelist()] zf.close() print motifs_zipped else: motifs_zipped=[] zf = ZipFile(zpklfile, 'a', ZIP_DEFLATED) print "Loading motif dist in DB..." (REF_SeqName,Motifs)=loadDB2RAM(care,None,None,False) id2MotifSeq=dict([(v,k) for k,v in care.MotifSeq.items()]) for i,motif in enumerate(Motifs): print motif,i if motif in motifs_zipped: continue REF_MotifSeq=getREF_MotifSeq(care,motif) motif_dist={} for MotifSeq_id in REF_MotifSeq: MotifSeq=id2MotifSeq[MotifSeq_id] motif_dist[MotifSeq]=getDist(care,MotifSeq_id) motif_dist=mergeREF_SeqName(motif_dist) print motif_dist.keys() zf.writestr('%s.pkl' % motif, cPickle.dumps(motif_dist)) zf.close() motif_dist=loadZpkl_motif_dist(zpklfile,Motifs) return motif_dist #getMerged(motif_dist,"REF_SeqName")
def getDBmotif_dist(dbname): care=CAREdb(dbname) print "Loading motif dist in DB..." (REF_SeqName,Motifs)=loadDB2RAM(care,None,None,False) id2MotifSeq=dict([(v,k) for k,v in care.MotifSeq.items()]) motif_dist={} for i,motif in enumerate(Motifs): print motif,i REF_MotifSeq=getREF_MotifSeq(care,motif) motif_dist[motif]={} for MotifSeq_id in REF_MotifSeq: MotifSeq=id2MotifSeq[MotifSeq_id] motif_dist[motif][MotifSeq]=getDist(care,MotifSeq_id) print motif_dist[motif].keys() return getMerged(motif_dist,"REF_SeqName")