Commit d17a1b56 authored by cmaffeo2's avatar cmaffeo2
Browse files

Bug fix for previous commit

parent f7cd72ff
......@@ -2399,7 +2399,7 @@ class SegmentModel(ArbdModel):
sign = 1 if b1_on_fwd_strand else -1
# if b1.parent.name == "D72" or b2.parent.name == "D72":
# if b1.parent.name == "8-1" or b2.parent.name == "8-1":
# print()
# print(b1.parent.name, b2.parent.name, b1_on_fwd_strand)
# import pdb
......@@ -2494,7 +2494,7 @@ class SegmentModel(ArbdModel):
""" Functions for adding crossover potentials """
def add_ss_crossover_potentials(connection,A,B, add_bond=True):
b1,b2 = [loc.particle for loc in (c.A,c.B)]
b1,b2 = [loc.particle for loc in (A,B)]
if (b1,b2,A.on_fwd_strand,B.on_fwd_strand) in processed_crossovers:
return
......@@ -2524,7 +2524,7 @@ class SegmentModel(ArbdModel):
def add_crossover_potentials(connection,A,B):
## TODO: use a better description here
b1,b2 = [loc.particle for loc in (c.A,c.B)]
b1,b2 = [loc.particle for loc in (A,B)]
if (b1,b2,A.on_fwd_strand,B.on_fwd_strand) in processed_crossovers:
return
......@@ -2542,8 +2542,8 @@ class SegmentModel(ArbdModel):
""" Add parallel helices potential, possibly """
## Add potential to provide a particular orinetation
nt1,nt2 = [l.get_nt_pos() for l in (c.A,c.B)]
is_end1, is_end2 = [nt in (0,l.container.num_nt-1) for nt,l in zip((nt1,nt2),(c.A,c.B))]
nt1,nt2 = [l.get_nt_pos() for l in (A,B)]
is_end1, is_end2 = [nt in (0,l.container.num_nt-1) for nt,l in zip((nt1,nt2),(A,B))]
is_T_junction = (is_end1 and not is_end2) or (is_end2 and not is_end1)
if (not is_end1) and (not is_end2):
......@@ -2558,41 +2558,41 @@ class SegmentModel(ArbdModel):
if is_T_junction:
""" Special case: one helix extends away from another in T-shaped junction """
if is_end1:
b1_forward = c.A.on_fwd_strand if nt1 == 0 else not c.A.on_fwd_strand
add_local_tee_orientation_potential(b1,b2, b1_forward, c.B.on_fwd_strand)
b1_forward = A.on_fwd_strand if nt1 == 0 else not A.on_fwd_strand
add_local_tee_orientation_potential(b1,b2, b1_forward, B.on_fwd_strand)
else:
add_local_crossover_strand_orientation_potential(b1,b2, c.A.on_fwd_strand)
add_local_crossover_strand_orientation_potential(b1,b2, A.on_fwd_strand)
if is_end2:
b2_forward = c.B.on_fwd_strand if nt2 == 0 else not c.B.on_fwd_strand
add_local_tee_orientation_potential(b2,b1, b2_forward, c.A.on_fwd_strand)
b2_forward = B.on_fwd_strand if nt2 == 0 else not B.on_fwd_strand
add_local_tee_orientation_potential(b2,b1, b2_forward, A.on_fwd_strand)
else:
add_local_crossover_strand_orientation_potential(b2,b1, c.B.on_fwd_strand)
add_local_crossover_strand_orientation_potential(b2,b1, B.on_fwd_strand)
else:
""" Normal case: add orientation potential """
add_local_crossover_strand_orientation_potential(b1,b2, c.A.on_fwd_strand)
add_local_crossover_strand_orientation_potential(b2,b1, c.B.on_fwd_strand)
add_local_crossover_strand_orientation_potential(b1,b2, A.on_fwd_strand)
add_local_crossover_strand_orientation_potential(b2,b1, B.on_fwd_strand)
""" Add connection potentials """
processed_crossovers = set()
# pdb.set_trace()
for c,A,B in self.get_connections("sscrossover"):
p1,p2 = [loc.container for loc in (c.A,c.B)]
p1,p2 = [loc.container for loc in (A,B)]
assert(any([isinstance(p,SingleStrandedSegment) for p in (p1,p2)]))
add_ss_crossover_potentials(c,A,B)
for c,A,B in self.get_connections("intrahelical"):
ps = [loc.container for loc in (c.A,c.B)]
ps = [loc.container for loc in (A,B)]
if any([isinstance(p,SingleStrandedSegment) for p in ps]) and \
any([isinstance(p,DoubleStrandedSegment) for p in ps]):
add_ss_crossover_potentials(c,A,B, add_bond=False)
for c,A,B in sum([self.get_connections(term) for term in ("crossover","terminal_crossover")],[]):
p1,p2 = [loc.container for loc in (c.A,c.B)]
p1,p2 = [loc.container for loc in (A,B)]
if any([isinstance(p,SingleStrandedSegment) for p in (p1,p2)]):
add_ss_crossover_potentials(c,A,B)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment