def _f_process(self, x): __doc___ = """ returns the squared sum of residuals objective function is the free energy """ self._f[:] = 0. if self.anal_grad: self._g[:] = 0. ### &PyArray_Type, &target, ### &PyArray_Type, &source, ### &PyArray_Type, &assign, ### &PyArray_Type, &factor, ### &PyArray_Type, &assign_factor ### Calculate DDG_comp - DDG_exp if self.pairs: _f = merge_casedata_ext(self._calc_data, self.ind_case, self.w, self.ind_rec) self._f[:] += pair_difference_ext(_f, self.pairidx) + x[-1] for i in range(self.parms - 1): _g = merge_casedata_ext(self._gradients[:, i], self.ind_case, self.w, self.ind_rec) self._g[:, i] += pair_difference_ext(_g, self.pairidx) self._g[:, -1] = 1 else: self._f[:] += merge_casedata_ext(self._calc_data, self.ind_case, self.w, self.ind_rec) for i in range(self.parms): self._g[:, i] += merge_casedata_ext(self._gradients[:, i], self.ind_case, self.w, self.ind_rec) else: ### &PyArray_Type, &target, ### &PyArray_Type, &source, ### &PyArray_Type, &assign, ### &PyArray_Type, &factor, ### &PyArray_Type, &assign_factor if self.pairs: _f = merge_casedata_ext(self._calc_data, self.ind_case, self.w, self.ind_rec) self._f[:] += pair_difference_ext(_f, self.pairidx) + x[-1] else: self._f[:] += merge_casedata_ext(self._calc_data, self.ind_case, self.w, self.ind_rec)
def _f_process(self, x): __doc___ = """ returns the squared sum of residuals objective function is the free energy """ self.gist_functional(x) ### x[0] = E_aff ### x[1] = e_co ### x[2] = S_aff ### x[3] = s_co ### x[4] = g_co (Rec) ### x[5] = g_co (Cplx) ### x[6] = g_co (Lig) ### x[7] = C_E ### x[8] = C_S self._f[:] = 0. if self.anal_grad: self._g[:] = 0. ### Complex and Ligand contributions ### &PyArray_Type, &source, ### &PyArray_Type, &assign, ### &PyArray_Type, &factor, ### &PyArray_Type, &assign_factor if self.pairs: _f = merge_casedata_ext(self._calc_data_cplx[:, 0], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) _f -= merge_casedata_ext(self._calc_data_lig[:, 0], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:, 0] += pair_difference_ext(_f, self.pairidx) _f = merge_casedata_ext(self._calc_data_cplx[:, 1], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) _f -= merge_casedata_ext(self._calc_data_lig[:, 1], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:, 1] += pair_difference_ext(_f, self.pairidx) for i in range(self.parms - 2): _g = merge_casedata_ext(self._gradients_cplx[:, i, 0], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) _g -= merge_casedata_ext(self._gradients_lig[:, i, 0], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._g[:, i, 0] += pair_difference_ext(_g, self.pairidx) _g = merge_casedata_ext(self._gradients_cplx[:, i, 1], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) _g -= merge_casedata_ext(self._gradients_lig[:, i, 1], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._g[:, i, 1] += pair_difference_ext(_g, self.pairidx) _g = merge_casedata_ext(self._gradients_cplx[:, -3, 0], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._g[:, -4, 0] += pair_difference_ext(_g, self.pairidx) _g = merge_casedata_ext(self._gradients_lig[:, -3, 0], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._g[:, -3, 0] -= pair_difference_ext(_g, self.pairidx) _g = merge_casedata_ext(self._gradients_cplx[:, -3, 1], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._g[:, -4, 1] += pair_difference_ext(_g, self.pairidx) _g = merge_casedata_ext(self._gradients_lig[:, -3, 1], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._g[:, -3, 1] -= pair_difference_ext(_g, self.pairidx) else: self._f[:, 0] = merge_casedata_ext(self._calc_data_cplx[:, 0], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._f[:, 0] -= merge_casedata_ext(self._calc_data[:, 0], self.ind_case, self.w, self.ind_rec) self._f[:, 0] -= merge_casedata_ext(self._calc_data_lig[:, 0], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:, 1] = merge_casedata_ext(self._calc_data_cplx[:, 1], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._f[:, 1] -= merge_casedata_ext(self._calc_data[:, 1], self.ind_case, self.w, self.ind_rec) self._f[:, 1] -= merge_casedata_ext(self._calc_data_lig[:, 1], self.ind_case_lig, self.w_lig, self.ind_case_lig) for i in range(self.parms - 2): self._g[:, i, 0] = merge_casedata_ext( self._gradients_cplx[:, i, 0], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._g[:, i, 0] -= merge_casedata_ext(self._gradients[:, i, 0], self.ind_case, self.w, self.ind_rec) self._g[:, i, 0] -= merge_casedata_ext( self._gradients_lig[:, i, 0], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._g[:, i, 1] = merge_casedata_ext( self._gradients_cplx[:, i, 1], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._g[:, i, 1] -= merge_casedata_ext(self._gradients[:, i, 1], self.ind_case, self.w, self.ind_rec) self._g[:, i, 1] -= merge_casedata_ext( self._gradients_lig[:, i, 1], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._g[:, -4, 0] += merge_casedata_ext( self._gradients_cplx[:, -3, 0], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._g[:, -5, 0] -= merge_casedata_ext(self._gradients[:, -3, 0], self.ind_case, self.w, self.ind_rec) self._g[:, -3, 0] -= merge_casedata_ext(self._gradients_lig[:, -3, 0], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._g[:, -4, 1] += merge_casedata_ext( self._gradients_cplx[:, -3, 1], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._g[:, -5, 1] -= merge_casedata_ext(self._gradients[:, -3, 1], self.ind_case, self.w, self.ind_rec) self._g[:, -3, 1] -= merge_casedata_ext(self._gradients_lig[:, -3, 1], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:, 0] += x[-2] self._f[:, 1] += x[-1] self._g[:, -2, 0] = 1 self._g[:, -2, 1] = 0 self._g[:, -1, 0] = 0 self._g[:, -1, 1] = 1 else: if self.pairs: _f = merge_casedata_ext(self._calc_data_cplx[:, 0], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) _f -= merge_casedata_ext(self._calc_data_lig[:, 0], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:, 0] += pair_difference_ext(_f, self.pairidx) _f = merge_casedata_ext(self._calc_data_cplx[:, 1], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) _f -= merge_casedata_ext(self._calc_data_lig[:, 1], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:, 1] += pair_difference_ext(_f, self.pairidx) else: self._f[:, 0] = merge_casedata_ext(self._calc_data_cplx[:, 0], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._f[:, 0] -= merge_casedata_ext(self._calc_data[:, 0], self.ind_case, self.w, self.ind_rec) self._f[:, 0] -= merge_casedata_ext(self._calc_data_lig[:, 0], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:, 1] = merge_casedata_ext(self._calc_data_cplx[:, 1], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._f[:, 1] -= merge_casedata_ext(self._calc_data[:, 1], self.ind_case, self.w, self.ind_rec) self._f[:, 1] -= merge_casedata_ext(self._calc_data_lig[:, 1], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:, 0] += x[-2] self._f[:, 1] += x[-1]
def _f_process(self, x): __doc___ = """ returns the squared sum of residuals objective function is the free energy """ self.gist_functional(x) self._f[:] = 0. if self.anal_grad: self._g[:] = 0. ### Complex and Ligand contributions ### &PyArray_Type, &source, ### &PyArray_Type, &assign, ### &PyArray_Type, &factor, ### &PyArray_Type, &assign_factor if self.pairs: _f = merge_casedata_ext(self._calc_data_cplx, self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) _f -= merge_casedata_ext(self._calc_data_lig, self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:] += pair_difference_ext(_f, self.pairidx) for i in range(self.parms - 1): _g = merge_casedata_ext(self._gradients_cplx[:, i], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) _g -= merge_casedata_ext(self._gradients_lig[:, i], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._g[:, i] += pair_difference_ext(_g, self.pairidx) else: self._f[:] = merge_casedata_ext(self._calc_data_cplx, self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._f[:] -= merge_casedata_ext(self._calc_data, self.ind_case, self.w, self.ind_rec) self._f[:] -= merge_casedata_ext(self._calc_data_lig, self.ind_case_lig, self.w_lig, self.ind_case_lig) for i in range(self.parms): self._g[:, i] = merge_casedata_ext(self._gradients_cplx[:, i], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._g[:, i] -= merge_casedata_ext(self._gradients[:, i], self.ind_case, self.w, self.ind_rec) self._g[:, i] -= merge_casedata_ext(self._gradients_lig[:, i], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:] += x[-1] self._g[:, -1] = 1 else: if self.pairs: ### Complex and Ligand contributions _f = merge_casedata_ext(self._calc_data_cplx, self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) _f -= merge_casedata_ext(self._calc_data_lig, self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:] += pair_difference_ext(_f, self.pairidx) else: ### Receptor contributions self._f[:] = merge_casedata_ext(self._calc_data_cplx, self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._f[:] -= merge_casedata_ext(self._calc_data, self.ind_case, self.w, self.ind_rec) self._f[:] -= merge_casedata_ext(self._calc_data_lig, self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:] += x[-1]
def _f_process(self, x): __doc__ = """ returns the squared sum of residuals using multiobjective function optimization with linear scaling. objective funtions are energy and entropy """ self.gist_functional(x) self._f[:] = 0. if self.anal_grad: self._g[:] = 0. if self.pairs: _f = merge_casedata_ext(self._calc_data[:, 0], self.ind_case, self.w, self.ind_rec) self._f[:, 0] += pair_difference_ext(_f, self.pairidx) + x[-2] _f = merge_casedata_ext(self._calc_data[:, 1], self.ind_case, self.w, self.ind_rec) self._f[:, 1] += pair_difference_ext(_f, self.pairidx) + x[-1] for i in range(self.parms - 1): _g = merge_casedata_ext(self._gradients[:, i, 0], self.ind_case, self.w, self.ind_rec) self._g[:, i, 0] += pair_difference_ext(_g, self.pairidx) _g = merge_casedata_ext(self._gradients[:, i, 1], self.ind_case, self.w, self.ind_rec) self._g[:, i, 1] += pair_difference_ext(_g, self.pairidx) self._g[:, -2, 0] = 1 self._g[:, -2, 1] = 0 self._g[:, -1, 0] = 0 self._g[:, -1, 1] = 1 else: self._f[:, 0] += merge_casedata_ext(self._calc_data[:, 0], self.ind_case, self.w, self.ind_rec) self._f[:, 1] += merge_casedata_ext(self._calc_data[:, 1], self.ind_case, self.w, self.ind_rec) for i in range(self.parms + 1): self._g[:, i, 0] += merge_casedata_ext(self._gradients[:, i, 0], self.ind_case, self.w, self.ind_rec) self._g[:, i, 1] += merge_casedata_ext(self._gradients[:, i, 1], self.ind_case, self.w, self.ind_rec) else: if self.pairs: _f = merge_casedata_ext(self._calc_data[:, 0], self.ind_case, self.w, self.ind_rec) self._f[:, 0] += pair_difference_ext(_f, self.pairidx) + x[-2] _f = merge_casedata_ext(self._calc_data[:, 1], self.ind_case, self.w, self.ind_rec) self._f[:, 1] += pair_difference_ext(_f, self.pairidx) + x[-1] else: self._f[:, 0] += merge_casedata_ext(self._calc_data[:, 0], self.ind_case, self.w, self.ind_rec) self._f[:, 1] += merge_casedata_ext(self._calc_data[:, 1], self.ind_case, self.w, self.ind_rec)
def _f_process(self, x): __doc___= """ returns the squared sum of residuals objective function is the free energy """ self.gist_functional(x) self._f[:] = 0. if self.anal_grad: self._g[:] = 0. if self.pairs: _f = merge_casedata_ext(self._calc_data_cplx[:,0], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) _f -= merge_casedata_ext(self._calc_data_lig[:,0], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:,0] += pair_difference_ext(_f, self.pairidx) _f = merge_casedata_ext(self._calc_data_cplx[:,1], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) _f -= merge_casedata_ext(self._calc_data_lig[:,1], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:,1] += pair_difference_ext(_f, self.pairidx) for i in range(self.parms-1): _g = merge_casedata_ext(self._gradients_cplx[:,i,0], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) _g -= merge_casedata_ext(self._gradients_lig[:, i,0], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._g[:,i,0] += pair_difference_ext(_g, self.pairidx) _g = merge_casedata_ext(self._gradients_cplx[:,i,1], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) _g -= merge_casedata_ext(self._gradients_lig[:, i,1], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._g[:,i,1] += pair_difference_ext(_g, self.pairidx) else: self._f[:,0] = merge_casedata_ext(self._calc_data_cplx[:,0], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._f[:,0] -= merge_casedata_ext(self._calc_data[:,0], self.ind_case, self.w, self.ind_rec) self._f[:,0] -= merge_casedata_ext(self._calc_data_lig[:,0], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:,1] = merge_casedata_ext(self._calc_data_cplx[:,1], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._f[:,1] -= merge_casedata_ext(self._calc_data[:,1], self.ind_case, self.w, self.ind_rec) self._f[:,1] -= merge_casedata_ext(self._calc_data_lig[:,1], self.ind_case_lig, self.w_lig, self.ind_case_lig) for i in range(self.parms+1): self._g[:,i,0] = merge_casedata_ext(self._gradients_cplx[:,i,0], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._g[:,i,0] -= merge_casedata_ext(self._gradients[:,i,0], self.ind_case, self.w, self.ind_rec) self._g[:,i,0] -= merge_casedata_ext(self._gradients_lig[:, i,0], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._g[:,i,1] = merge_casedata_ext(self._gradients_cplx[:,i,1], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._g[:,i,1] -= merge_casedata_ext(self._gradients[:,i,1], self.ind_case, self.w, self.ind_rec) self._g[:,i,1] -= merge_casedata_ext(self._gradients_lig[:, i,1], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:,0] += x[-2] self._f[:,1] += x[-1] self._g[:,-2,0] = 1 self._g[:,-2,1] = 0 self._g[:,-1,0] = 0 self._g[:,-1,1] = 1 else: if self.pairs: _f = merge_casedata_ext(self._calc_data_cplx[:,0], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) _f -= merge_casedata_ext(self._calc_data_lig[:,0], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:,0] += pair_difference_ext(_f, self.pairidx) _f = merge_casedata_ext(self._calc_data_cplx[:,1], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) _f -= merge_casedata_ext(self._calc_data_lig[:,1], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:,1] += pair_difference_ext(_f, self.pairidx) else: self._f[:,0] = merge_casedata_ext(self._calc_data_cplx[:,0], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._f[:,0] -= merge_casedata_ext(self._calc_data[:,0], self.ind_case, self.w, self.ind_rec) self._f[:,0] -= merge_casedata_ext(self._calc_data_lig[:,0], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:,1] = merge_casedata_ext(self._calc_data_cplx[:,1], self.ind_case_cplx, self.w_cplx, self.ind_case_cplx) self._f[:,1] -= merge_casedata_ext(self._calc_data[:,1], self.ind_case, self.w, self.ind_rec) self._f[:,1] -= merge_casedata_ext(self._calc_data_lig[:,1], self.ind_case_lig, self.w_lig, self.ind_case_lig) self._f[:,0] += x[-2] self._f[:,1] += x[-1]