From 3cfec3cef2923ebd9fbba6b79ce2620a0444a42b Mon Sep 17 00:00:00 2001 From: Chris Maffeo <cmaffeo2@illinois.edu> Date: Thu, 20 Sep 2018 21:22:33 -0500 Subject: [PATCH] Updated method for spring constant --- mrdna/segmentmodel.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/mrdna/segmentmodel.py b/mrdna/segmentmodel.py index 8f1b305..f62513c 100644 --- a/mrdna/segmentmodel.py +++ b/mrdna/segmentmodel.py @@ -15,6 +15,8 @@ from scipy import interpolate from .model.CanonicalNucleotideAtoms import canonicalNtFwd, canonicalNtRev, seqComplement from .model.CanonicalNucleotideAtoms import enmTemplateHC, enmTemplateSQ, enmCorrectionsHC +from .model.spring_from_lp import k_angle as angle_spring_from_lp + # import pdb """ TODO: @@ -2069,10 +2071,7 @@ class SegmentModel(ArbdModel): kT = 0.58622522 # kcal/mol if b1.type_.name[0] == "D" and b2.type_.name[0] == "D" and b3.type_.name[0] == "D": - ## <cos(q)> = exp(-s/Lp) = integrate( x^4 exp(-A x^2) / 2, {x, 0, pi} ) / integrate( x^2 exp(-A x^2), {x, 0, pi} ) - ## <cos(q)> ~ 1 - 3/4A - ## where A = k_spring / (2 kT) - k = 1.5 * kT * (1.0 / (1-np.exp(-float(sep)/147))) * 0.00030461742; # kcal_mol/degree^2 + k = angle_spring_from_lp(sep,147) if local_twist: ## TODO optimize this paramter k *= 0.5 # halve because orientation beads have similar springs @@ -2082,7 +2081,7 @@ class SegmentModel(ArbdModel): else: ## TODO: get correct number from ssDNA model - k = 1.5 * kT * (1.0 / (1-np.exp(-float(sep)/3))) * 0.00030461742; # kcal_mol/degree^2 + k = angle_spring_from_lp(sep,2) angle = self.get_angle_potential(k,180) parent.add_angle( b1, b2, b3, angle ) @@ -2126,7 +2125,7 @@ class SegmentModel(ArbdModel): parent = self._getParent( b1, b2 ) """ Add heuristic 90 degree potential to keep orientation bead orthogonal """ - k = (1.0/2) * 1.5 * kT * (1.0 / (1-np.exp(-float(sep)/147))) * 0.00030461742; # kcal_mol/degree^2 + k = 0.5*angle_spring_from_lp(sep,147) pot = self.get_angle_potential(k,90) parent.add_angle(o1,b1,b2, pot) parent.add_angle(b1,b2,o2, pot) @@ -2146,7 +2145,8 @@ class SegmentModel(ArbdModel): parent.add_dihedral(o1,b1,b2,o2, pot) def k_angle(sep): - return 1.5 * kT * (1.0 / (1-np.exp(-float(sep)/147))) * 0.00030461742; # kcal_mol/degree^2 + return 0.5*angle_spring_from_lp(sep,147) + def k_xover_angle(sep): return 0.5 * k_angle(sep) -- GitLab