def readoutresults(reslall, resnall, pickthese, DeltaOmegaParametersBoundaries, savstatdir, namresults, conditions, k23max): """ reads global fitting results from file. reslall: list of all residues possibly used for the results output, with a letter in front indicating whether this is referring to the folded (A), random coil (B) or dimer(C) peak. resnall: same list as reslall, without the letter pickthese: list pointing to the residues in reslall, resnall actually used for the output DeltaOmegaParametersBoundaries: boundaries for delta omegas, this is a dummy variable in most case. format: [residue1, residue2, ...]; residue1= [site A, site B, site C]; site A: [min, max boundary] namresults: name of results file. typically has an err_ suffix when referring to the error calculations based on a corresponding file without the suffix results files have the .dill file extension. DEL? conditions: list of fitting conditions, not important (dummy) format will me explained later. subject to removal First, a collection of Property Axes is triggered. Containing informations about possible magnetic fields, temperatures, sites, concentrations, B1 fields, experiment types, TROSY type, residues Then a ParameterCollection object based on the params class, using the PropertyAxesColl object, is generated. All relaxation dispersion fitting data are loaded into a variety of variables. The resultcoll variable contains the actual results. costs are extracted. The resulting parameters are transferred to the ParameterCollection object. The ParameterCollection object is re-sorted in order of increasing fitting cost. Important variables including a list of fitting conditions saved in the results file are returned. Also resultcoll, cost list, the resorted Parameter Collection and Property Axes Collection. """ PropAxesColl=mainfuncts.GeneratePropertyAxesCollection([x for y,x in \ enumerate(reslall) if y in pickthese],[x for y,x in enumerate(resnall)\ if y in pickthese]) ParameterColl=mainfuncts.parammake(PropAxesColl,0,[x for y,x in enumerate\ (DeltaOmegaParametersBoundaries) if y in pickthese],1,10000,100,900,1,k23max,0.005,0.5) #2 or 900 #DEL?#setparameters2=['combo10l.dat','C:\\Users\\Hans\\Desktop\\TRANSFER\\2020Feb\\',[[x for y,x in enumerate(reslall) if y in pickthese]],conditions,namresults] #DEL?#namresults=namresults+str(resnall[0])+'_'+str(nn)+'_' #A variety of pre-calculated data is loaded with this command. Not all of #them are in use, so no need to understand every sirngle variable here. poscoll,resnam,allsetcoll,resultcoll,relaxrat0,relaxrat,lookatratio,\ results,relaxrat1,relaxrat2,relaxrat_1,relaxrat_2,intdiffcorr, intcorr,\ intmin,ac,oc,rateconstpre,cond=hkio2.loadeverything(savstatdir,[namresults],0,decoupl=0) costcoll = [i.cost for i in resultcoll] #resultcoll=[resultcoll[np.argsort(costcoll)[0]]] ParameterColl2 = mainfuncts.resc2param(PropAxesColl, ParameterColl, resultcoll, 2) ParameterColl2 = [ParameterColl2[i] for i in np.argsort(costcoll)] costcoll = [costcoll[i] for i in np.argsort(costcoll)] return PropAxesColl, ParameterColl2, costcoll, resultcoll, cond
def readoutresults(namresultsx): reslall=['A29','A30','A31','A32','A33','A34','A52','A53','A54','A78','A81','A82','A83','A84','A86'] resnall=[29,30,31,32,33,34,52,53,54,78,81,82,83,84,86] freevsfix='free' #'fix_0 pickthis=1 list1=[] for pickthis in np.arange(15): list2=[] for nn in np.arange(3): reslall=['A29','A30','A31','A32','A33','A34','A52','A53','A54','A78','A81','A82','A83','A84','A86'] resnall=[29,30,31,32,33,34,52,53,54,78,81,82,83,84,86] reslall=[reslall[pickthis]] resnall=[resnall[pickthis]] pickthese=[0] praxs1=mainfuncts.praxismake([x for y,x in enumerate(reslall) if y in pickthese],[x for y,x in enumerate(resnall) if y in pickthese]) parbdslistaxallf=[[[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1,-1,],[-26000,26000],[-13000, 13000]],\ #out [[-1, 1], [-389.0, -5341], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]]] parbdslistaxallf=[parbdslistaxallf[pickthis]] paramsxx=mainfuncts.parammake(praxs1,0,[x for y,x in enumerate(parbdslistaxallf) if y in pickthese],1,10000,100,900,1,10000) conditions=[0,[1,3,3,3,3]] #setparameters2=['combo10l.dat','C:\\Users\\Hans\\Desktop\\TRANSFER\\2020Feb\\',[[x for y,x in enumerate(reslall) if y in pickthese]],conditions,namresults] namresults=namresultsx+str(resnall[0])+'_'+str(nn)+'_' poscoll,resnam,allsetcoll,resultcoll,relaxrat0,relaxrat,lookatratio,results,relaxrat1,relaxrat2,relaxrat_1,relaxrat_2,intdiffcorr, intcorr, intmin,ac,oc,rateconstpre,cond=hkio.loadeverything([namresults],0,decoupl=0) costcoll=[i.cost for i in resultcoll] resultcoll=[resultcoll[np.argsort(costcoll)[0]]] paramsxy=mainfuncts.resc2param(praxs1,paramsxx,resultcoll,5) list2.append(costcoll[0]) list1.append(list2) return list1
def produceindivplots(reslallx,resnallx,parbdslistaxallfx,namout,mode,k231,k232): for pickthis in np.arange(len(reslallx)): reslall=[reslallx[pickthis]] resnall=[resnallx[pickthis]] pickthese=[0] #global praxs1 praxs1=mainfuncts.praxismake([x for y,x in enumerate(reslall) if y in pickthese],[x for y,x in enumerate(resnall) if y in pickthese]) parbdslistaxallf=[parbdslistaxallfx[pickthis]] namresults='multix13_k13_ext_0'#######'multindiv_'+str(resnall[0]) paramsxx=mainfuncts.parammake(praxs1,0,[x for y,x in enumerate(parbdslistaxallf) if y in pickthese],1,10000,100,900,k231,k232) conditions=[0,[1,3,3,3,3]] #setparameters2=['combo10l.dat','C:\\Users\\Hans\\Desktop\\TRANSFER\\2020Feb\\',[[x for y,x in enumerate(reslall) if y in pickthese]],conditions,namresults] poscoll,resnam,allsetcoll,resultcoll,relaxrat0,relaxrat,lookatratio,results,relaxrat1,relaxrat2,relaxrat_1,relaxrat_2,intdiffcorr, intcorr, intmin,ac,oc,rateconstpre,cond=hkio.loadeverything([namresults],0,decoupl=0) costcoll=[i.cost for i in resultcoll] resultcoll=[resultcoll[np.argsort(costcoll)[0]]] paramsxy=mainfuncts.resc2param(praxs1,paramsxx,resultcoll,mode) for nn in [0]:#np.arange(3): namresultsOUT=namout+str(resnall[0])+'_'+str(nn)+'_' setparameters3=['combo10l.dat','C:\\Users\\Hans\\Desktop\\TRANSFER\\2020Feb\\',[[x for y,x in enumerate(reslall) if y in pickthese]],conditions,namresultsOUT,0] hkfit2.parallelfit3(praxs1,setparameters3,0,paramsxy[nn])
[[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]],\ [[-1, 1], [-26000,26000], [-13000, 13000]]] parbdslistaxallf=[parbdslistaxallf[pickthis]] paramsxx=mainfuncts.parammake(praxs1,0,[x for y,x in enumerate(parbdslistaxallf) if y in pickthese],1,10000,100,900,1,10000) resultcollx=[] costcollx=[] for nn in np.arange(3): namresults='indiv_fix_0_'+str(resnall[0])+'_'+str(nn)+'_' poscoll,resnam,allsetcoll,resultcoll,relaxrat0,relaxrat,lookatratio,results,relaxrat1,relaxrat2,relaxrat_1,relaxrat_2,intdiffcorr, intcorr, intmin,ac,oc,rateconstpre,cond=hkio.loadeverything([namresults],0,decoupl=0) costcoll=[i.cost for i in resultcoll] resultcollx.append(resultcoll[np.argsort(costcoll)[0]]) costcollx.append(resultcoll[np.argsort(costcoll)[0]].cost) resultcoll=[resultcollx[np.argsort(costcoll)[0]]] paramsxy=mainfuncts.resc2param(praxs1,paramsxx,resultcoll,2) dwblist.append(paramsxy[0]['dw'][1]['par'][0]) dwclist.append(paramsxy[0]['dw'][2]['par'][0]) reslall=['A29','A30','A31','A32','A33','A34','A52','A53','A54','A78','A81','A82','A83','A84','A86'] for j,i in enumerate(reslall): print i, int(np.round(dwblist[j],0)), int(np.round(dwclist[j],0)) #%% from matplotlib import pyplot as plt reslall=['A29','A30','A31','A32','A33','A34','A52','A53','A54','A78','A81','A82','A83','A84','A86'] fullnamlist=['Ser','Gly', 'Trp', 'Val', 'Trp', 'Asn', 'Gln', 'Phe', 'Phe', 'Val', 'Ile', 'Glu', 'Glu', 'Tyr', 'Thr', 'Gly', 'Pro', 'Asp', 'Pro', 'Val', 'Leu', 'Val', 'Gly', 'Arg', 'Leu', 'His', 'Ser', 'Asp', 'Ile', 'Asp', 'Ser', 'Gly', 'Asp', 'Gly', 'Asn', 'Ile', 'Lys', 'Tyr', 'Ile', 'Leu', 'Ser', 'Gly', 'Glu', 'Gly', 'Ala', 'Gly', 'Thr', 'Ile', 'Phe', 'Val', 'Ile', 'Asp', 'Asp', 'Lys', 'Ser', 'Gly', 'Asn', 'Ile', 'His', 'Ala', 'Thr', 'Lys', 'Thr', 'Leu', 'Asp', 'Arg', 'Glu', 'Glu', 'Arg', 'Ala', 'Gln', 'Tyr', 'Thr', 'Leu', 'Met', 'Ala', 'Gln', 'Ala', 'Val', 'Asp', 'Arg', 'Asp', 'Thr', 'Asn', 'Arg', 'Pro', 'Leu', 'Glu', 'Pro', 'Pro', 'Ser', 'Glu', 'Phe', 'Ile', 'Val', 'Lys', 'Val', 'Gln', 'Asp'] plt.rcParams.update({'font.size': 18}) lab=[];y1=[];y2=[];y3=[];y4=[]
inclfilt=[['residues', 'name', rbc[0]], ['sites', 'name', 'B']])[0])[0] if dnwn == 4 or dnwn == 8 or dnwn == 95: print dwb if (rbc[1] < 0 and dwb > 0) or (rbc[1] > 0 and dwb < 0): #print 'fail', dwb dnw += 1 #else: # print 'pass', dwb if dnw == 0: print 'all pass', dnwn else: print 'fail ', dnw, dnwn costcoll[dnwn] = costcoll[dnwn] + dnw ParameterColl2 = [ParameterColl2[i] for i in np.argsort(costcoll)] costcoll2 = [costcoll[i] for i in np.argsort(costcoll)] #costcoll=[costcoll[i] for i in np.argsort(costcoll)] #ParameterColl2[2]['dw'][19]['par']=[-10258.957] #%% import plotRD as procall2 import globalfitfunctions as hkfit2 #selnam=[reslalmall[0],reslalmall[1]] #7 symbolic selnam = ['A30', 'A32', 'A37'] #reslalmall[0],reslalmall[1]] #7 symbolic selnam = ['A38', 'A45', 'A38'] selnam = [ 'A30', 'A32', 'A37', 'A38', 'A45', 'A50', 'A53', 'A54', 'A73', 'A77', 'A78', 'A86' ]
def produceindivplots(path2020, savstatdir, datafile, namresults, reslallx, resnallx, parbdslistaxallfx, namout, mode, k121, k122, k131, k132, k231, k232, errruns): #print 'a' for pickthis in np.arange(len(reslallx)): # print 'b' reslall = [reslallx[pickthis]] resnall = [resnallx[pickthis]] pickthese = [0] # print 'c' PropAxesColl = mainfuncts.GeneratePropertyAxesCollection( [x for y, x in enumerate(reslall) if y in pickthese], [x for y, x in enumerate(resnall) if y in pickthese]) parbdslistaxallf = [parbdslistaxallfx[pickthis]] #paramsxx=mainfuncts.parammake(PropAxesColl,0,[x for y,x in enumerate(parbdslistaxallf) if y in pickthese],1,8000,100,900,k231,k232,0.005,0.1) #paramsxx=mainfuncts.parammake(PropAxesColl,0,[x for y,x in enumerate(parbdslistaxallf) if y in pickthese],3000,4000,600,700,k231,k232,0.01,0.02) paramsxx = mainfuncts.parammake( PropAxesColl, 0, [x for y, x in enumerate(parbdslistaxallf) if y in pickthese], k121, k122, k131, k132, k231, k232, 0.01, 0.02) ##conditions=[0,[1,0,0,5,5]] #individual nitrogen fits conditions = [0, [1, 0, 0, 10, 5]] #individualproton fits #setparameters2=['combo10l.dat','C:\\Users\\Hans\\Desktop\\TRANSFER\\2020Feb\\',[[x for y,x in enumerate(reslall) if y in pickthese]],conditions,namresults] if namresults == []: ParameterColl6 = paramsxx else: poscoll, resnam, allsetcoll, resultcoll, relaxrat0, relaxrat, lookatratio, results, relaxrat1, relaxrat2, relaxrat_1, relaxrat_2, intdiffcorr, intcorr, intmin, ac, oc, rateconstpre, cond = hkio2.loadeverything( savstatdir, [namresults], 0, decoupl=0) costcoll = [i.cost for i in resultcoll] resultcoll = [resultcoll[np.argsort(costcoll)[0]]] ParameterColl6 = mainfuncts.resc2param(PropAxesColl, paramsxx, resultcoll, mode) for nn in [0]: #np.arange(3): namresultsOUT = namout + str(nn) + '_' setparameters3 = [ datafile, path2020, [[x for y, x in enumerate(reslall) if y in pickthese]], conditions, namresultsOUT, 0 ] hkfit2.parallelfit3(path2020, savstatdir, setparameters3, 0, ParameterColl6[nn], PropAxesColl) dataname = datafile setparameters2 = [ dataname, path2020, [x for y, x in enumerate(reslall) if y in pickthese], conditions, namresultsOUT ] #,'A34' #'/home/hanskoss/data/Cadherin/nmrCad/procandcoll/TSnewsort/2020Feb/ selset = 0 ss = hkfit2.evaluaterdfit(path2020, savstatdir, PropAxesColl, setparameters2, 1, ParameterColl6[selset], 0) hkio2.savss(savstatdir, ss, namresultsOUT) for errc in np.arange(errruns): setparameters3 = [ datafile, path2020, [[x for y, x in enumerate(reslall) if y in pickthese]], conditions, namresultsOUT + 'err_' + str(errc) + '_', namresultsOUT ] hkfit2.parallelfit3(path2020, savstatdir, setparameters3, 0, ParameterColl6[nn], PropAxesColl) setparameters3 = [ 'combo10l.dat', path2020, [[x for y, x in enumerate(reslall) if y in pickthese]], conditions, 'FINAL_stage4_23_', 'FINAL_stage3_23x_' + str(runnum) ] p = multiprocessing.Process(target=hkfit2.parallelfit3, args=(path2020, savstatdir, setparameters3, outnum * numrep + runnum, ParameterColl6[runnum], PropAxesColl))
results,relaxrat1,relaxrat2,relaxrat_1,relaxrat_2,intdiffcorr, intcorr,\ intmin,ac,oc,rateconstpre,cond=hkio2.loadeverything(savstatdir,[namresultsprev],0,decoupl=0) """ from the 90 runs, the results of the last step from each of the three precalculation attempts is collected. The best 90 (lowest cost) of the 270 collected results are then selected to continue the fit (stage 3b), with 10 documented steps of 5 undocumented fitting substeps. """ resultcoll = [] allcostcoll = [] for i in allsetcoll: allcostcoll.append([i[j].cost for j in [2, 5, 8]]) allcostcoll = flatten(allcostcoll) sortedcosts = np.argsort(allcostcoll) for sel in np.arange(90): pos2 = sortedcosts[sel] % 3 * 3 + 2 pos1 = int(np.floor(sortedcosts[sel] / 3)) resultcoll.append(allsetcoll[pos1][pos2]) namresults = 'FINAL_stage2b' ParameterColl2 = mainfuncts.resc2param(PropAxesColl, ParameterColl, resultcoll, 2) conditions = [0, [1, 0, 0, 10, 5]] setparameters3 = [ 'combo10l.dat', path2020, [[x for y, x in enumerate(reslall) if y in pickthese]], conditions, namresults, 0 ]