diff --git a/mrdna/readers/cadnano_segments.py b/mrdna/readers/cadnano_segments.py index 0d366b8134522e7a7d6781bfe8ccc55f7184a567..15dd725a26cf0a7d083d37c8fa25d4d416143200 100644 --- a/mrdna/readers/cadnano_segments.py +++ b/mrdna/readers/cadnano_segments.py @@ -226,7 +226,10 @@ class cadnano_part(SegmentModel): numHID = part.getIdNumMax() + 1 for id_num in range(numHID): - offset_and_size = part.getOffsetAndSize(id_num) + try: + offset_and_size = part.getOffsetAndSize(id_num) + except: + offset_and_size = None if offset_and_size is None: ## Add a placeholder for empty helix vh_list.append((id_num, 0)) @@ -499,16 +502,20 @@ class cadnano_part(SegmentModel): ## TODO: use different types of crossovers ## fwd? ## 5'-to-3' direction + if isinstance(seg1, SingleStrandedSegment): f1 = True + if isinstance(seg2, SingleStrandedSegment): f2 = True seg1.add_crossover(nt1,seg2,nt2,[f1,f2]) def _add_prime_ends(self): for h,fwd,z in self._5prime_list: seg, nt = self._get_segment_nucleotide(h,z, fwd) + if isinstance(seg, SingleStrandedSegment): fwd = True # print("adding 5prime",seg.name,nt,fwd) seg.add_5prime(nt,fwd) for h,fwd,z in self._3prime_list: seg, nt = self._get_segment_nucleotide(h,z, not fwd) + if isinstance(seg, SingleStrandedSegment): fwd = True # print("adding 3prime",seg.name,nt,fwd) seg.add_3prime(nt,fwd)