From a1906156369ce480492bdf3fbeb8eeadb445bbc4 Mon Sep 17 00:00:00 2001 From: Keitaro Yamashita Date: Tue, 18 Jul 2023 21:16:33 +0100 Subject: [PATCH] refine_xtal: decide weight automatically --- servalcat/__init__.py | 4 ++-- servalcat/refine/refine_xtal.py | 13 ++++++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/servalcat/__init__.py b/servalcat/__init__.py index d23de32..3637fe8 100644 --- a/servalcat/__init__.py +++ b/servalcat/__init__.py @@ -6,5 +6,5 @@ Mozilla Public License, version 2.0; see LICENSE. """ -__version__ = '0.4.28' -__date__ = '2023-06-23' +__version__ = '0.4.29' +__date__ = '2023-07-19' diff --git a/servalcat/refine/refine_xtal.py b/servalcat/refine/refine_xtal.py index 41d470e..c2200ce 100644 --- a/servalcat/refine/refine_xtal.py +++ b/servalcat/refine/refine_xtal.py @@ -54,8 +54,8 @@ def add_arguments(parser): help='Shake coordinates with specified rmsd') parser.add_argument('--ncycle', type=int, default=10, help="number of CG cycles (default: %(default)d)") - parser.add_argument('--weight', type=float, default=1, - help="refinement weight") + parser.add_argument('--weight', type=float, + help="refinement weight (default: auto)") parser.add_argument('--sigma_b', type=float, default=10, help="refinement ADP sigma in B (default: %(default)f)") parser.add_argument('--bfactor', type=float, @@ -152,7 +152,14 @@ def main(args): # initialize ADP if args.adp != "fix": utils.model.reset_adp(st[0], args.bfactor, args.adp == "aniso") - + + # auto weight + if args.weight is None: + logger.writeln("Estimating weight using resolution") + reso = hkldata.d_min_max()[0] + args.weight = numpy.exp(reso * 0.9104 + 0.2162) + logger.writeln(" Will use weight= {:.2f}".format(args.weight)) + geom = Geom(st, topo, monlib, shake_rms=args.randomize, sigma_b=args.sigma_b, refmac_keywords=keywords, unrestrained=args.unrestrained or args.jellyonly, use_nucleus=(args.source=="neutron")) geom.geom.adpr_max_dist = args.max_dist_for_adp_restraint