diff --git a/mrdna/readers/segmentmodel_from_lists.py b/mrdna/readers/segmentmodel_from_lists.py index 8d53e2434671663a419a6c8922e86c6aab074202..fbf8da2fb61aea87c4246161d9e99e7cef87c1bb 100644 --- a/mrdna/readers/segmentmodel_from_lists.py +++ b/mrdna/readers/segmentmodel_from_lists.py @@ -88,11 +88,15 @@ def set_splines(seg, coordinates, hid, hmap, hrank, fwd, orientation=None): for rank in range(int(maxrank)+1): ids = np.where((hmap == hid) * (hrank == rank))[0] coords.append(np.mean( [coordinates[r,:] for r in ids ], axis=0 )) - contours.append( float(rank)/maxrank ) + contours.append( float(rank+0.5)/(maxrank+1) ) + last_q = None if orientation is not None: ids = np.where((hmap == hid) * (hrank == rank) * fwd)[0] assert(len(ids) == 1) - quats.append( quaternion_from_matrix( orientation[ids[0]] ) ) + q = quaternion_from_matrix( orientation[ids[0]] ) + if last_q is not None and last_q[1:].dot(q[1:]) < 0: + q = -1*q + quats.append(q) ## TODO: average quaterion with reverse direction coords = np.array(coords) @@ -153,7 +157,7 @@ def model_from_basepair_stack_3prime(coordinates, basepair, stack, three_prime, hmap,hrank,fwd = basepairs_and_stacks_to_helixmap(bps,stack) double_stranded_helices = np.unique(hmap[hmap >= 0]) strands = _three_prime_list_to_strands(three_prime) - + """ Add ssDNA to hmap """ hid = double_stranded_helices[-1]+1 ss_residues = hmap < 0 diff --git a/mrdna/readers/segmentmodel_from_pdb.py b/mrdna/readers/segmentmodel_from_pdb.py index e42e87d06aa079a89724c6da52b0886cea68cd58..3cbb683de5a95be8f0fa76ea565e449b7cf12b76 100644 --- a/mrdna/readers/segmentmodel_from_pdb.py +++ b/mrdna/readers/segmentmodel_from_pdb.py @@ -258,8 +258,6 @@ def SegmentModelFromPdb(*args,**kwargs): bps = find_basepairs(u, centers, transforms) stacks = find_stacks(u, centers, transforms) - # pdb.set_trace() - ## Find three-prime ends three_prime = -np.ones(bps.shape, dtype=np.int) for s in u.segments: