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