From 83af80087fed1a4d5cf4c91eb80d0af0d89dd49a Mon Sep 17 00:00:00 2001
From: Chris Maffeo <cmaffeo2@illinois.edu>
Date: Wed, 12 Feb 2020 14:21:15 -0600
Subject: [PATCH] Shift segment occupancies when extending segmentmodel

---
 mrdna/segmentmodel.py | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/mrdna/segmentmodel.py b/mrdna/segmentmodel.py
index 22f205d..74c7782 100644
--- a/mrdna/segmentmodel.py
+++ b/mrdna/segmentmodel.py
@@ -1716,14 +1716,30 @@ class SegmentModel(ArbdModel):
 
     def extend(self, other, copy=True, include_strands=False):
         assert( isinstance(other, SegmentModel) )
+
+        try:
+            max_occupancy = max([s.occupancy for s in self.segments if 'occupancy' in s.__dict__])
+            occupancy0 = 10**np.ceil(np.log10(max_occupancy+1))
+        except:
+            pass
+
         if copy:
             for s in other.segments:
-                self.segments.append(deepcopy(s))
+                newseg = deepcopy(s)
+                try:
+                    newseg.occupancy = occupancy0+s.occupancy
+                except:
+                    pass
+                self.segments.append(newseg)
             if include_strands:
                 for s in other.strands:
                     self.strands.append(deepcopy(s))
         else:
             for s in other.segments:
+                try:
+                    s.occupancy = occupancy0+s.occupancy
+                except:
+                    pass
                 self.segments.append(s)
             if include_strands:
                 for s in other.strands:
-- 
GitLab