コード例 #1
0
ファイル: pdb_analysis_c5.py プロジェクト: ekraka/EDHB
def connection_analysis(path,ma=3.0,mi=2.0):
	all_res={}
	res,d=pre_data(path,ma,mi)
	for a,li in res:
		for b in li:
			con=hb.connections('.'.join(path.split('.')[:-1])+'.xyz')
			lis = con.bfs(a-1,b-1)
			if len(lis)==4:
				dih=con.dihedral(lis)
				li=[a,b]
				li.sort()
				#print li
				all_res[tuple(li)]=[dih,distance(d[a][1:],d[b][1:]),d[a][0]+'-'+d[b][0],lis]

	return all_res
コード例 #2
0
def connection_analysis(path,ma=4.0,mi=1.8):

	all_res={}
	res,d=pre_data(path,ma,mi)
	for n,a,li in res:
		#print a,h,li
		for b in li:
			con=hb.connections('.'.join(path.split('.')[:-1])+'.xyz')
			lis = con.bfs(a-1,b-1)

			if len(lis)==5 and distance(d[a][1:],d[b][1:]) < 2.50:
				li=[n,a,b]
				#print n,a,b

				all_res[tuple(li)]=[lis,d[n][0]+d[a][0]+'-'+d[b][0]]

	return all_res
コード例 #3
0
def job(path):
        dic=get_ids(path,suffix='_ah')
        
        p_id={}
        con=hb.connections(path[:-4]+'.xyz')
        for i in dic:
            a,b,c=dic[i]
            #print a,b,c
            refe_lis=con.bfs(int(a)-1,int(c)-1)
            if len(refe_lis)==0:
                p_id[i]='None'
            elif 0 and len(refe_lis)==4:
                # for writing dihedral in bracket for 5 memberd rings
                p_id[i]='I('+str(len(refe_lis)+1)+')'+'('+str(con.dihedral(refe_lis))+')'
            else:
                p_id[i]='I('+str(len(refe_lis)+1)+')'
            

        
        return addRing(path,p_id)
コード例 #4
0
def test(path):

        def lmode_id(path):
            f=open(path,'r')
            lines=f.readlines()
            f.close()
            i=-1
            i2=0
            ref=0
            lm={}
            length=0
            kr_st=None
            for line in lines:
                    i+=1
                    if ref==5:
                            break
                    if ref==1 and not kr_st:
                        kr=line.strip().split()
                        if kr[0]!='DonarSymbol':
                            kr_st=(43,67)
                        else:
                            kr_st=(11,36)
                    if 'File format' in line:
                            ref+=1
                    if len(line.strip().split())==0 and ref>0:
                            ref+=1
                    if ref==2:
                            lines[i-1]=' '.join(lines[i-1].strip().split())+', IntramolecularRing(size)(dihedral for C5 type) \n'
                    if ref==2 or ref==3:
                            ref+=1
                    if ref==4:
                            s,e=kr_st
                            #print line[s:e]
                            l=line.strip().split()
                            st=l[-3]
                            lm[str(i2+1)+'.']=st
                            #lines[i]=lines[i].strip()+' '+lmodes[i2]+'\n'
                            i2+=1
            return lm


        dic=get_ids(path,suffix='_ah')
        l_d=lmode_id(path)
        #print l_d
        p_id={}
        con=hb.connections(path[:-4]+'.xyz')
        st_d = {}
        count = 0
        for i in dic:
            a,b,c=dic[i]
            #print a,b,c
            a,b,c = list(map(int,[a,b,c]))
            refe_lis=con.bfs(int(a)-1,int(c)-1)
            
            dist=con.distance(int(a),int(c))
            hbl = con.distance(int(b),int(c))
            if len(refe_lis)==0:
                p_id[i]='None'
            elif len(refe_lis)==4:

                make_input_pucker(refe_lis+[b],con.d,count)
                count+=1

                p_id[i]='I('+str(len(refe_lis)+1)+')'+'('+str(con.dihedral(refe_lis))+')'
                bond = con.atom_name(int(a))+'-'+con.atom_name(int(c))
                if bond in st_d:
                    st_d[bond]+=bond+' '+str(dist)+' '+str(con.dihedral(refe_lis))+' '+l_d[i]+' '+str(hbl)+' '+str(a)+' '+str(b)+' '+str(c)+'\n'
                else:
                    st_d[bond] = bond+' '+str(dist)+' '+str(con.dihedral(refe_lis))+' '+l_d[i]+' '+str(hbl)+' '+str(a)+' '+str(b)+' '+str(c)+'\n'
            else:
                p_id[i]='I('+str(len(refe_lis)+1)+')'
            

        
        return st_d
コード例 #5
0
		f.write(' '.join(map(str,con.d[i]))+'\n')
	f.write('\n\n')
	f.close()

	return  






if __name__=='__main__':
	ref = 1
	name = sys.argv[1].split('.')[0]
	ids = aR.get_ids(name+'.txt')
	con=hb.connections(name+'.xyz')
	xyz_d = {}
	for i in ids:
		a,b,c = map(int,ids[i])
		lis = con.bfs(b-1,c-1)
		if len(lis) == 5:
			ns1 = map(lambda x: x+1,con.next_state(lis[0],3.5))
			ns2 = map(lambda x: x+1,con.next_state(lis[-1],3.5))
			#print con.d[a][0]
			write_o(list(set(lis+ns1+ns2)),ref,con,con.d[a][0]+con.d[b][0]+con.d[c][0])
			#vs = set()
			#count = 0
			#xyz_d[i] = xyz(lis,con,ref)

			ref+=1