From 6a314a50bd991bb8ec3353fc0992ea5bfe1faf92 Mon Sep 17 00:00:00 2001
From: Chris Maffeo <cmaffeo2@illinois.edu>
Date: Sun, 23 Sep 2018 16:00:41 -0500
Subject: [PATCH] Fixed some small issues with cadnano reader for ssDNA

---
 mrdna/readers/cadnano_segments.py | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/mrdna/readers/cadnano_segments.py b/mrdna/readers/cadnano_segments.py
index 0d366b8..15dd725 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) 
    
-- 
GitLab