Пример #1
0
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)