Пример #1
0
         tdomain_res.append(k)            
 for res in tprofile_res:                    
     for rdef in rdc_data[i][res]:                        
         res1, sp1 , res2, sp2, rdc = rdef[0], rdef[1], rdef[2], rdef[3], rdef[4] 
         res1_index = tprofile_res.index(res1)
         d_res1= tdomain_res[res1_index]
         try:
             res2_index = tprofile_res.index(res2)
             d_res2 = tdomain_res[res2_index]
         except:                        
             if res2 == res1-1:
                 d_res2 = d_res1-1                            
         c1 = pymol.cmd.get_model('('+sname2+' and name '+sp1+' and resi '+str(d_res1)+' )').get_coord_list()
         c2 = pymol.cmd.get_model('('+sname2+' and name '+sp2+' and resi '+str(d_res2)+' )').get_coord_list()
         if c1 and c2:
             v1 = rf.getVector(c1,c2)
             vec_gm = rf.getGMR(sp1, sp2)
             vec_data.append([v1,vec_gm,rdc])
         else:
             continue # check this implementation
 maxcs = 10000 # maximum number of optimization calls
 soln, cov, info, mesg, success = leastsq(rf.RDC_ZYZ, ptensor, args=(scal, vec_data), full_output=1, maxfev=maxcs)
 chisq = sum(info["fvec"]*info["fvec"])          
 tensor_utr = utr.AnglesUTR(soln)
 if ud.rdc_filter(tensor_utr):                    
     if chisq/len(vec_data) < 7.0:                    
         # sort_nchi[tnchi]=[temp_nchi,temp_tensor,log,domain]                    
         temp_tensor.append([tensor_utr, vec_data])
         temp_nchi.append(chisq/len(vec_data))
 if len(temp_nchi) < i+1:                
     break