diff --git a/cadnano_segments.py b/cadnano_segments.py index 585b3681a04191024dd7f666027e67dbb9bfdfae..d0adeea2b822735fc997b5081a0e0a1e74fce940 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,