From 616ca8e25568b140e4ef24f1068dbdf6ffada1e2 Mon Sep 17 00:00:00 2001
From: Chris Maffeo <cmaffeo2@illinois.edu>
Date: Tue, 17 Jul 2018 16:43:56 -0500
Subject: [PATCH] Added 'read_model' to cadnano_segments

---
 cadnano_segments.py | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/cadnano_segments.py b/cadnano_segments.py
index 585b368..d0adeea 100644
--- a/cadnano_segments.py
+++ b/cadnano_segments.py
@@ -544,6 +544,39 @@ def decode_cadnano_part(json_data):
 def package_archive( name, directory ):
     ...
 
+def read_model(json_data, sequence=None):
+    """ Read in data """
+    part = decode_cadnano_part(json_data)
+    model = cadnano_part(part,
+                         max_basepairs_per_bead = 7,
+                         max_nucleotides_per_bead = 4,
+                         local_twist=False)
+    model._generate_strands() # TODO: move into model creation
+
+    # TODO
+    # try:
+    #     model.set_cadnano_sequence()
+    # finally:
+    #     ...
+    #     if sequence is not None and len() :
+    #         model.strands[0].set_sequence(seq)
+
+    if sequence is None or len(sequence) == 0:
+        ## default m13mp18
+        sequence = list(m13seq)
+        try:
+            model.strands[0].set_sequence(sequence)
+        except:
+            ...
+    else:
+        model.strands[0].set_sequence(sequence)
+
+    for s in model.segments:
+        s.randomize_unset_sequence()
+
+    return model
+
+
 def run_simulation_protocol( output_name, job_id, json_data,
                              sequence=None,
                              remove_long_bonds=False,
-- 
GitLab