PyFolding icon indicating copy to clipboard operation
PyFolding copied to clipboard

S15_homopolymerising model: error

Open mnaqvi-code opened this issue 4 years ago • 1 comments

When I am running the code and I am getting the following error Automatic global fitting to the homozipper model

r_homo = ising.fit_homopolymer(proteins, n_helices)

ValueError Traceback (most recent call last) in 1 # try with a one-liner which can also save out the curve fits via:"save='/Users/ergm/Desktop/test.csv' ----> 2 r_homo = ising.fit_homopolymer(proteins, n_helices) #, save='/Users/ergm/Desktop/test.csv')

~\anaconda3\lib\site-packages\pyfolding-1.0-py3.8.egg\pyfolding\ising.py in fit_homopolymer(equilibrium_curves, topologies, p0, bounds, **kwargs) 657 # do the global fit 658 # out, covar = global_fit.fit( p0=p0, bounds=((0,-1.,0.),(10.,1.,-10.)) ) --> 659 out, covar = global_fit.fit( p0=p0, bounds=bounds ) 660 661

~\anaconda3\lib\site-packages\pyfolding-1.0-py3.8.egg\pyfolding\core.py in fit(self, p0, bounds) 776 # fit the data 777 if bounds: --> 778 out, covar = optimize.curve_fit(self, x, y, p0=p0, bounds=bounds, 779 max_nfev=20000, absolute_sigma=True, 780 sigma=self.fit_weights)

~\anaconda3\lib\site-packages\scipy\optimize\minpack.py in curve_fit(f, xdata, ydata, p0, sigma, absolute_sigma, check_finite, bounds, method, jac, **kwargs) 793 kwargs['max_nfev'] = kwargs.pop('maxfev', None) 794 --> 795 res = least_squares(func, p0, jac=jac, bounds=bounds, method=method, 796 **kwargs) 797

~\anaconda3\lib\site-packages\scipy\optimize_lsq\least_squares.py in least_squares(fun, x0, jac, bounds, method, ftol, xtol, gtol, x_scale, loss, f_scale, diff_step, tr_solver, tr_options, jac_sparsity, max_nfev, verbose, args, kwargs) 789 790 if np.any(lb >= ub): --> 791 raise ValueError("Each lower bound must be strictly less than each " 792 "upper bound.") 793

ValueError: Each lower bound must be strictly less than each upper bound.

mnaqvi-code avatar Apr 08 '21 13:04 mnaqvi-code

Looks like the bounds are set incorrectly now - maybe this would work?

bounds=((0,-1.,-10.), (10.,1.,0.))

quantumjot avatar Apr 12 '21 10:04 quantumjot