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