Пример #1
0
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")
Пример #2
0
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")