From c1d8f2fef1e4e413e8761fc3aeeebfb2cc2d6f8f Mon Sep 17 00:00:00 2001
From: Chris Maffeo <cmaffeo2@illinois.edu>
Date: Thu, 28 Oct 2021 10:05:03 -0500
Subject: [PATCH] Use average persistence length of parent segments in
 model.simulate(), rather than object returned _get_parent(), which can be
 'model'; thanks to Elija Feigl

---
 bin/enrgmd            | 2 +-
 bin/mrdna             | 2 +-
 mrdna/segmentmodel.py | 5 +++--
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/bin/enrgmd b/bin/enrgmd
index cd8627d..4a8cf0e 100755
--- a/bin/enrgmd
+++ b/bin/enrgmd
@@ -27,7 +27,7 @@ parser.add_argument('--crossover-to-intrahelical-cutoff', type=float, default=-1
 parser.add_argument('--backbone-scale', type=float, default=1.0,
                     help='Factor to scale DNA backbone in atomic model; try 0.25 to avoid clashes for atomistic simulations')
 
-parser.add_argument('--enrg-md-steps', type=int, default=1e6,
+parser.add_argument('--enrg-md-steps', type=float, default=1e6,
                     help='Number of ENRG-MD steps')
 
 parser.add_argument('--write-pqr', action='store_true',
diff --git a/bin/mrdna b/bin/mrdna
index 01686bb..1645aa5 100755
--- a/bin/mrdna
+++ b/bin/mrdna
@@ -70,7 +70,7 @@ parser.add_argument('--backbone-scale', type=float, default=1.0,
 parser.add_argument('--run-enrg-md', action='store_true',
                     help='Perform the ENRG-MD simulation?')
 
-parser.add_argument('--enrg-md-steps', type=int, default=1e6,
+parser.add_argument('--enrg-md-steps', type=float, default=1e6,
                     help='Number of ENRG-MD steps')
 
 parser.add_argument('--debug', action='store_true',
diff --git a/mrdna/segmentmodel.py b/mrdna/segmentmodel.py
index ff4f2d6..3071839 100644
--- a/mrdna/segmentmodel.py
+++ b/mrdna/segmentmodel.py
@@ -2932,9 +2932,10 @@ class SegmentModel(ArbdModel):
                     o1,o2 = [b.orientation_bead for b in (b1,b2)]
 
                     parent = self._getParent( b1, b2 )
-
+                    _Lp = (p1.persistence_length + p2.persistence_length) * 0.5
+                    
                     """ Add heuristic 90 degree potential to keep orientation bead orthogonal """
-                    k = 0.25*k_dsdna_angle(sep, parent.persistence_length)
+                    k = 0.25*k_dsdna_angle(sep, _Lp)
                     pot = self.get_angle_potential(k,90)
                     parent.add_angle(o1,b1,b2, pot)
                     parent.add_angle(b1,b2,o2, pot)
-- 
GitLab