B0 = 18.8 TinK = 298.0 Sorder = 1.0 scal = rf.rdcScal(Sorder, B0, TinK) homologs=[] # specify homologs to exclude from calculation sort_nchi={} for domain in cath_entries: # ['5gstB02', 'GLU', '90', 'MET', '112', 'ASP', '118', 'LEU', '141'] if domain[0] in homologs: continue rdcd = ParaData(['rdc', ss_seq, rdc_file]) rdc_data = rdcd.processParaData() temp_nchi, temp_tensor = [], [] # to store tensor and control datasets for i in range(0, len(rdc_data)): # iterate through each RDC data set vector_data, data_error = rf.matchRdcToSmotif(s1_profile, s2_profile, domain, rdc_data[i]) if not data_error: # [[-0.6490001678466797, -0.3989999294281006, 0.6469993591308594], -7252794860688272.0, -6.593]] # X Y Z gm1*gm2 rdc p0 = [0,0,0,0,0] maxcs = 10000 # maximum number of optimization calls soln, cov, info, mesg, success = leastsq(rf.RDC_ZYZ, p0, args=(scal, vector_data), full_output=1, maxfev=maxcs) chisq = sum(info["fvec"]*info["fvec"]) tensor_utr = utr.AnglesUTR(soln) if ud.rdc_filter(tensor_utr): # sort_nchi[tnchi]=[temp_nchi,temp_tensor,log,domain] temp_tensor.append([tensor_utr, vector_data]) temp_nchi.append(chisq/len(vector_data)) if sum(temp_nchi) < 25.0: print temp_nchi, len(temp_tensor)