diff --git a/bin/mrdna b/bin/mrdna index 019fd4919fa7c3914228c5cf29c95250fd3d8cb4..852f39b2b190ef338c539dd7171432be78087768 100755 --- a/bin/mrdna +++ b/bin/mrdna @@ -29,6 +29,9 @@ parser.add_argument('--debye-length', type=float, default=None, parser.add_argument('--temperature', type=float, default=295, help='Temperature in Kelvin.') +parser.add_argument('--dimensions', type=str, default=None, + help='Comma-separated sides of box in Angstroms.') + parser.add_argument('--sequence-file', type=str, default=None, help='Sequence of longest strand.') @@ -73,6 +76,16 @@ parser.add_argument('input_file', type=str, args = parser.parse_args() +if args.dimensions is not None: + try: + tmp = [float(f) for f in args.dimensions.split(',')] + if len(tmp) != 3: + raise ValueError + args.dimensions = tmp + except: + raise ValueError('--dimensions requires a comma separated list of floating point values, not "{}"'.format(args.dimensions)) + + def main(): infile = pathlib.Path(args.input_file) try: @@ -91,6 +104,12 @@ def main(): raise Exception("Unrecognized input file '{}'".format(infile)) model = read_model( str(infile), debye_length=args.debye_length, temperature=args.temperature ) + if args.dimensions is None: + model.dimensions = [max(f,2500) + for f in model.dimensions_from_structure( padding_factor=2.5 )] + else: + model.dimensions = args.dimensions + if args.output_prefix is not None: prefix = args.output_prefix