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
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
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)
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
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