From c6385f0b49d982a3edf321d6c627e170beac0b2e Mon Sep 17 00:00:00 2001 From: Benjamin Lee Date: Wed, 16 Sep 2020 17:29:19 -0700 Subject: [PATCH 01/23] Fixes #138; add Python 3.6 CI tests --- .github/workflows/pythonpackage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index e1bf4b40..d53793a0 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [3.7, 3.8] + python-version: [3.6, 3.7, 3.8] steps: - uses: actions/checkout@v2 From 0546749c85001edc77ed26f22a69851a1af0ff3c Mon Sep 17 00:00:00 2001 From: Benjamin Lee Date: Thu, 17 Sep 2020 23:47:35 -0700 Subject: [PATCH 02/23] Fixes #125; CI checks for docs and PyPI packaging * Also renamed Python package workflow to Run Unit Tests for clarity --- .github/workflows/check_pypi_packaging.yml | 25 +++++++++++++++++++ .github/workflows/docs-check.yml | 13 ++++++++++ .../{pythonpackage.yml => run_unit_tests.yml} | 2 +- 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/check_pypi_packaging.yml create mode 100644 .github/workflows/docs-check.yml rename .github/workflows/{pythonpackage.yml => run_unit_tests.yml} (96%) diff --git a/.github/workflows/check_pypi_packaging.yml b/.github/workflows/check_pypi_packaging.yml new file mode 100644 index 00000000..a05155ad --- /dev/null +++ b/.github/workflows/check_pypi_packaging.yml @@ -0,0 +1,25 @@ +name: "Check PyPI Packaging" + +on: + push: + branches-ignore: + - "master" + +jobs: + check_pypi_packaging: + name: "Release" + runs-on: "ubuntu-latest" + + steps: + - uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install setuptools wheel + - name: Build and publish + run: | + python setup.py sdist bdist_wheel diff --git a/.github/workflows/docs-check.yml b/.github/workflows/docs-check.yml new file mode 100644 index 00000000..ad4e0bc4 --- /dev/null +++ b/.github/workflows/docs-check.yml @@ -0,0 +1,13 @@ +name: "Docs Check" +on: push + +jobs: + docs: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: ammaraskar/sphinx-action@master + with: + docs-folder: "doc/" + pre-build-command: "pip3 install sphinx_rtd_theme" + build-command: "sphinx-build -T -E -W -b html . _build" diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/run_unit_tests.yml similarity index 96% rename from .github/workflows/pythonpackage.yml rename to .github/workflows/run_unit_tests.yml index d53793a0..b5cf965d 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/run_unit_tests.yml @@ -1,4 +1,4 @@ -name: Python package +name: Run Unit Tests on: [push] From 76a85be1c4922099a12a1f9fcfd0c3d80b0c92d2 Mon Sep 17 00:00:00 2001 From: Benjamin Lee Date: Thu, 17 Sep 2020 23:54:45 -0700 Subject: [PATCH 03/23] Remove misplaced name field --- .github/workflows/check_pypi_packaging.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/check_pypi_packaging.yml b/.github/workflows/check_pypi_packaging.yml index a05155ad..7bfb344a 100644 --- a/.github/workflows/check_pypi_packaging.yml +++ b/.github/workflows/check_pypi_packaging.yml @@ -7,7 +7,6 @@ on: jobs: check_pypi_packaging: - name: "Release" runs-on: "ubuntu-latest" steps: From 8699cb7d9350b5f87e308058d45820c6305b6898 Mon Sep 17 00:00:00 2001 From: Benjamin Lee Date: Fri, 18 Sep 2020 13:09:43 -0700 Subject: [PATCH 04/23] Remove publish from task name for clarity --- .github/workflows/check_pypi_packaging.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check_pypi_packaging.yml b/.github/workflows/check_pypi_packaging.yml index 7bfb344a..491fee68 100644 --- a/.github/workflows/check_pypi_packaging.yml +++ b/.github/workflows/check_pypi_packaging.yml @@ -19,6 +19,5 @@ jobs: run: | python -m pip install --upgrade pip pip install setuptools wheel - - name: Build and publish - run: | - python setup.py sdist bdist_wheel + - name: Build + run: python setup.py sdist bdist_wheel From b137c8080cc663ff82406fe792998383a869500e Mon Sep 17 00:00:00 2001 From: David Doty Date: Fri, 25 Sep 2020 14:14:24 -0700 Subject: [PATCH 05/23] added FAM, ROX, and Fluorescein modifications; added code to automatically population field Modification.id with Modification.idt_text if latter is specified and former is not --- scadnano/modifications.py | 33 +++++++++++++++++++++------------ scadnano/scadnano.py | 19 +++++++++++++------ 2 files changed, 34 insertions(+), 18 deletions(-) diff --git a/scadnano/modifications.py b/scadnano/modifications.py index 4f96fd39..02b28549 100644 --- a/scadnano/modifications.py +++ b/scadnano/modifications.py @@ -1,14 +1,23 @@ from scadnano import Modification5Prime, Modification3Prime, ModificationInternal -biotin_5p = Modification5Prime(display_text='B', id='/5Biosg/', idt_text='/5Biosg/') -biotin_3p = Modification3Prime(display_text='B', id='/3Bio/', idt_text='/3Bio/') -biotin_int = ModificationInternal(display_text='B', id='/iBiodT/', idt_text='/iBiodT/', - allowed_bases=frozenset('T')) - -cy3_5p = Modification5Prime(display_text='Cy3', id='/5Cy3/', idt_text='/5Cy3/') -cy3_3p = Modification3Prime(display_text='Cy3', id='/3Cy3Sp/', idt_text='/3Cy3Sp/') -cy3_int = ModificationInternal(display_text='Cy3', id='/iCy3/', idt_text='/iCy3/') - -cy5_5p = Modification5Prime(display_text='Cy5', id='/5Cy5/', idt_text='/5Cy5/') -cy5_3p = Modification3Prime(display_text='Cy5', id='/3Cy5Sp/', idt_text='/3Cy5Sp/') -cy5_int = ModificationInternal(display_text='Cy5', id='/iCy5/', idt_text='/iCy5/') +biotin_5p = Modification5Prime(display_text='B', idt_text='/5Biosg/') +biotin_3p = Modification3Prime(display_text='B', idt_text='/3Bio/') +biotin_int = ModificationInternal(display_text='B', idt_text='/iBiodT/', allowed_bases=frozenset('T')) + +cy3_5p = Modification5Prime(display_text='Cy3', idt_text='/5Cy3/') +cy3_3p = Modification3Prime(display_text='Cy3', idt_text='/3Cy3Sp/') +cy3_int = ModificationInternal(display_text='Cy3', idt_text='/iCy3/') + +cy5_5p = Modification5Prime(display_text='Cy5', idt_text='/5Cy5/') +cy5_3p = Modification3Prime(display_text='Cy5', idt_text='/3Cy5Sp/') +cy5_int = ModificationInternal(display_text='Cy5', idt_text='/iCy5/') + +fam_5p = Modification5Prime(display_text='F', idt_text='/56-FAM/') +fam_3p = Modification3Prime(display_text='F', idt_text='/36-FAM/') + +rox_5p = Modification5Prime(display_text='R', idt_text='/56-ROXN/') +rox_3p = Modification3Prime(display_text='R', idt_text='/3Rox_N/') + +fluorescein_5p = Modification5Prime(display_text='F', idt_text='/5FluorT/') +fluorescein_3p = Modification3Prime(display_text='F', idt_text='/3FluorT/') +fluorescein_int = ModificationInternal(display_text='F', idt_text='/iFluorT/') \ No newline at end of file diff --git a/scadnano/scadnano.py b/scadnano/scadnano.py index 07f321aa..7988b2f7 100644 --- a/scadnano/scadnano.py +++ b/scadnano/scadnano.py @@ -783,7 +783,6 @@ def m13(rotation: int = 5587, variant: M13Variant = M13Variant.p7249) -> str: mod_display_connector_key = 'display_connector' mod_allowed_bases_key = 'allowed_bases' - # end keys ################## @@ -794,6 +793,8 @@ def m13(rotation: int = 5587, variant: M13Variant = M13Variant.p7249) -> str: ########################################################################## # modification abstract base classes +_default_modification_id = "WARNING: no id assigned to modification" + @dataclass(frozen=True, eq=True) class Modification(_JSONSerializable): @@ -805,13 +806,20 @@ class Modification(_JSONSerializable): """Short text to display in the web interface as an "icon" visually representing the modification, e.g., ``'B'`` for biotin or ``'Cy3'`` for Cy3.""" - id: str = "WARNING: no id assigned to modification" - """Short representation as a string; used to write in :any:`Strand` json representation, - while the full description of the modification is written under a global key in the :any:`Design`.""" + id: str = _default_modification_id + """ + Representation as a string; used to write in :any:`Strand` json representation, + while the full description of the modification is written under a global key in the :any:`Design`. + If not specified, but :py:data:`Modification.idt_text` is specified, then it will be set equal to that. + """ idt_text: Optional[str] = None """IDT text string specifying this modification (e.g., '/5Biosg/' for 5' biotin). optional""" + def __post_init__(self): + if self.id == _default_modification_id and self.idt_text is not None: + object.__setattr__(self, 'id', self.id) + def to_json_serializable(self, suppress_indent: bool = True, **kwargs: Any) -> Dict[str, Any]: ret = {mod_display_text_key: self.display_text} if self.idt_text is not None: @@ -4133,7 +4141,7 @@ def _cadnano_v2_place_strand(self, strand: Strand, dct: dict, self._cadnano_v2_place_crossover(which_helix, next_helix, domain, next_domain, strand_type) - def _cadnano_v2_fill_blank(self, dct: dict, num_bases: int, design_grid: Grid) -> Dict[int, int]: + def _cadnano_v2_fill_blank(self, dct: dict, num_bases: int, design_grid: Grid) -> Dict[int, int]: """Creates blank cadnanov2 helices in and initialized all their fields. """ helices_ids_reverse = {} @@ -4189,7 +4197,6 @@ def to_cadnano_v2(self) -> Dict[str, Any]: only if all groups share the same grid type.') else: design_grid = grid_type - '''Figuring out the type of grid. In cadnano v2, all helices have the same max offset From 74862239bbf6fce21e5935b6c2722eb6fe47da3c Mon Sep 17 00:00:00 2001 From: David Doty Date: Fri, 25 Sep 2020 14:22:49 -0700 Subject: [PATCH 06/23] fixed error in setting Modification.id from Modification.idt_text --- scadnano/scadnano.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scadnano/scadnano.py b/scadnano/scadnano.py index 7988b2f7..b7a2c9a5 100644 --- a/scadnano/scadnano.py +++ b/scadnano/scadnano.py @@ -818,7 +818,7 @@ class Modification(_JSONSerializable): def __post_init__(self): if self.id == _default_modification_id and self.idt_text is not None: - object.__setattr__(self, 'id', self.id) + object.__setattr__(self, 'id', self.idt_text) def to_json_serializable(self, suppress_indent: bool = True, **kwargs: Any) -> Dict[str, Any]: ret = {mod_display_text_key: self.display_text} From b6f75d488d93d94abb14ecadb61510d735ab34a1 Mon Sep 17 00:00:00 2001 From: David Doty Date: Fri, 25 Sep 2020 14:35:18 -0700 Subject: [PATCH 07/23] included everything in modifications and origami_rectangle when importing scadnano --- scadnano/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scadnano/__init__.py b/scadnano/__init__.py index 988f4965..7e22f1fa 100644 --- a/scadnano/__init__.py +++ b/scadnano/__init__.py @@ -1 +1,3 @@ -from scadnano.scadnano import * \ No newline at end of file +from scadnano.scadnano import * +from scadnano.modifications import * +from scadnano.origami_rectangle import * \ No newline at end of file From 61ba5377bb9bed178431553a776749e5469e56cb Mon Sep 17 00:00:00 2001 From: David Doty Date: Sun, 27 Sep 2020 07:05:59 -0700 Subject: [PATCH 08/23] updated defaults for Design.set_default_idt --- scadnano/scadnano.py | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/scadnano/scadnano.py b/scadnano/scadnano.py index b7a2c9a5..4274e71c 100644 --- a/scadnano/scadnano.py +++ b/scadnano/scadnano.py @@ -934,7 +934,7 @@ class Position3D(_JSONSerializable): Increasing `z` moves right in the side view and out of the screen in the main view.""" def to_json_serializable(self, suppress_indent: bool = True, **kwargs: Any) -> Dict[str, Any]: - dct: Dict[str, Any] = self.__dict__ + dct: Dict[str, Any] = dict(self.__dict__) # return NoIndent(dct) if suppress_indent else dct return dct @@ -1963,7 +1963,7 @@ def __post_init__(self) -> None: def to_json_serializable(self, suppress_indent: bool = True, **kwargs: Any) -> Union[NoIndent, Dict[str, Any]]: - dct: Dict[str, Any] = self.__dict__ + dct: Dict[str, Any] = dict(self.__dict__) if self.plate is None: del dct['plate'] if self.well is None: @@ -2647,11 +2647,25 @@ def set_default_idt(self, use_default_idt: bool = True, skip_scaffold: bool = Tr return self.use_default_idt = use_default_idt if use_default_idt: - start_helix = self.first_bound_domain().helix - end_helix = self.last_bound_domain().helix - start_offset = self.first_bound_domain().offset_5p() - end_offset = self.last_bound_domain().offset_3p() - self.idt = IDTFields(name=f'ST{start_helix}[{start_offset}]{end_helix}[{end_offset}]') + if self.name is None: + start_helix = self.first_bound_domain().helix + end_helix = self.last_bound_domain().helix + start_offset = self.first_bound_domain().offset_5p() + end_offset = self.last_bound_domain().offset_3p() + name = f'ST{start_helix}[{start_offset}]{end_helix}[{end_offset}]' + else: + name = self.name + + if ((self.modification_5p is not None and self.modification_5p.idt_text != '/5Biosg/') + or self.modification_3p is not None + or len(self.modifications_int) > 0): + purification = 'PAGE' + scale = '100nm' + else: + purification = 'STD' + scale = '25nm' + + self.idt = IDTFields(name=name, purification=purification, scale=scale) else: self.idt = None From 11d6606b9131a2de46273373dc945f361539887b Mon Sep 17 00:00:00 2001 From: David Doty Date: Thu, 1 Oct 2020 08:03:38 -0700 Subject: [PATCH 09/23] fixed some mypy errors, and added unique_names argument to set_default_idt to break with cadnano's naming convention and ensure strand names are unique --- scadnano/scadnano.py | 75 ++++++++++++++++++++++++++++---------------- 1 file changed, 48 insertions(+), 27 deletions(-) diff --git a/scadnano/scadnano.py b/scadnano/scadnano.py index 4274e71c..630a7e8d 100644 --- a/scadnano/scadnano.py +++ b/scadnano/scadnano.py @@ -816,7 +816,7 @@ class Modification(_JSONSerializable): idt_text: Optional[str] = None """IDT text string specifying this modification (e.g., '/5Biosg/' for 5' biotin). optional""" - def __post_init__(self): + def __post_init__(self) -> None: if self.id == _default_modification_id and self.idt_text is not None: object.__setattr__(self, 'id', self.idt_text) @@ -1793,10 +1793,13 @@ class Loopout(_JSONSerializable): """ length: int - """Length (in DNA bases) of this Loopout.""" + """Length (in DNA bases) of this :any:`Loopout`.""" name: Optional[str] = None """ + Optional name to give this :any:`Loopout`. + + This is used to interoperate with the dsd DNA sequence design package. """ label: Any = None @@ -1999,12 +2002,12 @@ def __init__(self, design: 'Design[StrandLabel, DomainLabel]', helix: int, offse self.current_helix: int = helix self.current_offset: int = offset # self.loopout_length: Optional[int] = None - self._strand: Optional[Strand[StrandLabel]] = None + self._strand: Optional[Strand[StrandLabel, DomainLabel]] = None self.just_moved_to_helix: bool = True self.last_domain: Optional[Domain[DomainLabel]] = None @property - def strand(self) -> 'Strand[StrandLabel]': + def strand(self) -> 'Strand[StrandLabel, DomainLabel]': if self._strand is None: raise ValueError('no Strand created yet; make at least one domain first') return self._strand @@ -2641,8 +2644,21 @@ def set_color(self, color: Color) -> None: """Sets color of this :any:`Strand`.""" self.color = color - def set_default_idt(self, use_default_idt: bool = True, skip_scaffold: bool = True) -> None: - """Sets idt field to be the default given the Domain data of this :any:`Strand`.""" + def set_default_idt(self, use_default_idt: bool = True, skip_scaffold: bool = True, + unique_names: bool = False) -> None: + """ + Sets idt field to be the default given the Domain data of this :any:`Strand`. + + Assigns name to be :py:data:`Strand.name` if it is not None, otherwise uses cadnano's naming + convention of, for example ST2[5]4[10] to indicate a strand that starts at helix 2, offset 5, + and ends at helix 4, offset 10. Note that this naming convention is not unique: two strands in + the system could share this name. To ensure it is unique, set the parameter `unique_names` to True, + which will modify the name with forward/reverse information from the first domain that uniquely + identifies the strand, e.g., ST2[5]F4[10] or ST2[5]R4[10]. + + Assigns purification = "STD" and scale = "25nm" if no modifications are present, or if the + modification has idt_text "/5Biosg/", otherwise sets purification = "PAGE" and scale = "100nm". + """ if skip_scaffold and self.is_scaffold: return self.use_default_idt = use_default_idt @@ -2652,7 +2668,10 @@ def set_default_idt(self, use_default_idt: bool = True, skip_scaffold: bool = Tr end_helix = self.last_bound_domain().helix start_offset = self.first_bound_domain().offset_5p() end_offset = self.last_bound_domain().offset_3p() - name = f'ST{start_helix}[{start_offset}]{end_helix}[{end_offset}]' + forward_str = 'F' if self.first_bound_domain().forward else 'R' + if not unique_names: + forward_str = '' + name = f'ST{start_helix}[{start_offset}]{forward_str}{end_helix}[{end_offset}]' else: name = self.name @@ -3890,7 +3909,8 @@ def _cadnano_v2_import_explore_strand(vstrands: VStrands, strand_5_end_helix) domains_loopouts = cast(List[Union[Domain, Loopout]], # noqa domains) # type: ignore - strand = Strand(domains=domains_loopouts, is_scaffold=(strand_type == 'scaf'), color=strand_color) + strand: Strand = Strand(domains=domains_loopouts, + is_scaffold=(strand_type == 'scaf'), color=strand_color) return strand @@ -3954,7 +3974,7 @@ def from_cadnano_v2(directory: Optional[str] = None, filename: Optional[str] = N if strand is not None: strands.append(strand) - design = Design(grid=grid_type, helices=helices, strands=strands) + design: Design = Design(grid=grid_type, helices=helices, strands=strands) # DD: Tristan, I commented this out because I think it's unnecessary given the way the Design # constructor works, and because I'm now implementing this feature: # https://github.com/UC-Davis-molecular-computing/scadnano-python-package/issues/121 @@ -4163,13 +4183,11 @@ def _cadnano_v2_fill_blank(self, dct: dict, num_bases: int, design_grid: Grid) - helix_dct: Dict[str, Any] = OrderedDict() helix_dct['num'] = helix.idx - if design_grid == Grid.square: + if design_grid == Grid.square or design_grid == Grid.honeycomb: + assert helix.grid_position is not None helix_dct['row'] = helix.grid_position[1] helix_dct['col'] = helix.grid_position[0] - if design_grid == Grid.honeycomb: - helix_dct['row'], helix_dct['col'] = helix.grid_position[1], helix.grid_position[0] - helix_dct['scaf'] = [] helix_dct['stap'] = [] helix_dct['loop'] = [] @@ -4197,16 +4215,16 @@ def to_cadnano_v2(self) -> Dict[str, Any]: dct['vstrands'] = [] '''Check if helix group are used or if only one grid is used''' - design_grid = None if self._has_default_groups(): design_grid = self.grid else: - gridUsed = {} - grid_type = None + grid_used = {} + assert len(self.groups) > 0 + grid_type = Grid.none for group_name in self.groups: - gridUsed[self.groups[group_name].grid] = True + grid_used[self.groups[group_name].grid] = True grid_type = self.groups[group_name].grid - if len(gridUsed) > 1: + if len(grid_used) > 1: raise ValueError('Designs using helix groups can be exported to cadnano v2 \ only if all groups share the same grid type.') else: @@ -4307,14 +4325,17 @@ def _set_helices_min_max_offsets(self, update: bool) -> None: min_offset = 0 helix.min_offset = min_offset - def set_default_idt(self, use_default_idt: bool = True) -> None: + def set_default_idt(self, use_default_idt: bool = True, unique_names: bool = False) -> None: """If ``True``, sets :py:data:`Strand.use_default_idt` to ``True`` for every :any:`Strand` in this :any:`Design` and calls :py:meth:`Strand.set_default_idt` on each of them to assign a default idt field. - If ``False``, removes IDT field from each :any:`Strand`.""" + If ``False``, removes IDT field from each :any:`Strand`. + + See documentation for :py:meth:`Strand.set_default_idt` for an explanation of its function and + the meaning of the parameters.""" for strand in self.strands: - strand.set_default_idt(use_default_idt) + strand.set_default_idt(use_default_idt, unique_names) def strands_starting_on_helix(self, helix: int) -> List[Strand]: """Return list of :any:`Strand`'s that begin (have their 5' end) @@ -5101,8 +5122,8 @@ def add_nick(self, helix: int, offset: int, forward: bool, new_color: bool = Tru order = domains.index(domain_to_remove) domains_before = domains[:order] domains_after = domains[order + 1:] - domain_left = Domain(helix, forward, domain_to_remove.start, offset) - domain_right = Domain(helix, forward, offset, domain_to_remove.end) + domain_left: Domain[DomainLabel] = Domain(helix, forward, domain_to_remove.start, offset) + domain_right: Domain[DomainLabel] = Domain(helix, forward, offset, domain_to_remove.end) if domain_to_remove.forward: domain_to_add_before = domain_left @@ -5136,7 +5157,7 @@ def add_nick(self, helix: int, offset: int, forward: bool, new_color: bool = Tru self.strands.remove(strand) idt_present = strand.idt is not None - strand_before = Strand( + strand_before: Strand[StrandLabel, DomainLabel] = Strand( domains=domains_before + cast(List[Union[Domain, Loopout]], [domain_to_add_before]), # noqa dna_sequence=seq_before_whole, color=strand.color, @@ -5144,7 +5165,7 @@ def add_nick(self, helix: int, offset: int, forward: bool, new_color: bool = Tru ) color_after = next(self.color_cycler) if new_color else strand.color - strand_after = Strand( + strand_after: Strand[StrandLabel, DomainLabel] = Strand( domains=cast(List[Union[Domain, Loopout]], [domain_to_add_after]) + domains_after, # noqa dna_sequence=seq_after_whole, color=color_after, @@ -5223,8 +5244,8 @@ def add_half_crossover(self, helix: int, helix2: int, offset: int, forward: bool raise IllegalDesignError( 'cannot add crossover between two strands if one has a DNA sequence ' 'and the other does not') - new_strand = Strand(domains=new_domains, color=strand_first.color, dna_sequence=new_dna, - idt=strand_first.idt) + new_strand: Strand[StrandLabel, DomainLabel] = Strand(domains=new_domains, color=strand_first.color, + dna_sequence=new_dna, idt=strand_first.idt) self.strands.remove(strand_first) self.strands.remove(strand_last) From 11d9d675028d82c2dd8e0c7be88c909653547be6 Mon Sep 17 00:00:00 2001 From: David Doty Date: Thu, 1 Oct 2020 15:54:05 -0700 Subject: [PATCH 10/23] changed default IDT purification with modifications from PAGE to HPLC --- scadnano/scadnano.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scadnano/scadnano.py b/scadnano/scadnano.py index 630a7e8d..41d0dd20 100644 --- a/scadnano/scadnano.py +++ b/scadnano/scadnano.py @@ -2657,7 +2657,7 @@ def set_default_idt(self, use_default_idt: bool = True, skip_scaffold: bool = Tr identifies the strand, e.g., ST2[5]F4[10] or ST2[5]R4[10]. Assigns purification = "STD" and scale = "25nm" if no modifications are present, or if the - modification has idt_text "/5Biosg/", otherwise sets purification = "PAGE" and scale = "100nm". + modification has idt_text "/5Biosg/", otherwise sets purification = "HPLC" and scale = "100nm". """ if skip_scaffold and self.is_scaffold: return @@ -2678,7 +2678,7 @@ def set_default_idt(self, use_default_idt: bool = True, skip_scaffold: bool = Tr if ((self.modification_5p is not None and self.modification_5p.idt_text != '/5Biosg/') or self.modification_3p is not None or len(self.modifications_int) > 0): - purification = 'PAGE' + purification = 'HPLC' scale = '100nm' else: purification = 'STD' From c24784f79ac53fab16344ba24521d13325bc24c5 Mon Sep 17 00:00:00 2001 From: David Doty Date: Thu, 1 Oct 2020 17:04:37 -0700 Subject: [PATCH 11/23] added code to import IDT fields from JSON, along with unit tests --- scadnano/scadnano.py | 21 ++++++++++++++++++++- tests/scadnano_tests.py | 19 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/scadnano/scadnano.py b/scadnano/scadnano.py index 41d0dd20..89ac847d 100644 --- a/scadnano/scadnano.py +++ b/scadnano/scadnano.py @@ -783,6 +783,14 @@ def m13(rotation: int = 5587, variant: M13Variant = M13Variant.p7249) -> str: mod_display_connector_key = 'display_connector' mod_allowed_bases_key = 'allowed_bases' +# IDT keys +idt_name_key = 'name' +idt_scale_key = 'scale' +idt_purification_key = 'purification' +idt_plate_key = 'plate' +idt_well_key = 'well' + + # end keys ################## @@ -1973,6 +1981,15 @@ def to_json_serializable(self, suppress_indent: bool = True, del dct['well'] return NoIndent(dct) + @staticmethod + def from_json(json_map: Dict[str, Any]) -> 'IDTFields': + name = mandatory_field(IDTFields, json_map, idt_name_key) + scale = mandatory_field(IDTFields, json_map, idt_scale_key) + purification = mandatory_field(IDTFields, json_map, idt_purification_key) + plate = json_map.get(idt_plate_key) + well = json_map.get(idt_well_key) + return IDTFields(name=name, scale=scale, purification=purification, plate=plate, well=well) + def _check_idt_string_not_none_or_empty(value: str, field_name: str) -> None: if value is None: @@ -2567,7 +2584,9 @@ def from_json(json_map: dict) -> 'Strand': # remove quotes when Py3.6 support d dna_sequence = optional_field(None, json_map, dna_sequence_key, *legacy_dna_sequence_keys) - idt = json_map.get(idt_key) + idt_dict = json_map.get(idt_key) + idt = None if idt_dict is None else IDTFields.from_json(idt_dict) + color_str = json_map.get(color_key, default_scaffold_color if is_scaffold else default_strand_color) if isinstance(color_str, int): diff --git a/tests/scadnano_tests.py b/tests/scadnano_tests.py index 7b5ac4e5..fac5e1d2 100644 --- a/tests/scadnano_tests.py +++ b/tests/scadnano_tests.py @@ -2749,6 +2749,25 @@ def test_strand_labels(self) -> None: self.assertDictEqual(strand0_expected.label, strand0.label) self.assertDictEqual(strand1_expected.label, strand1.label) + def test_strand_idt(self) -> None: + helices = [sc.Helix(max_offset=100), sc.Helix(max_offset=100)] + strand0_expected = sc.Strand([sc.Domain(0, True, 0, 10)], idt=sc.IDTFields(name='strand1', + scale='25nm', + purification='HPLC', + plate='plate1', + well='A2')) + strands = [strand0_expected] + design = sc.Design(helices=helices, strands=strands, grid=sc.square) + json_str = design.to_json() + design_from_json = sc.Design.from_scadnano_json_str(json_str) + strand0 = design_from_json.strands[0] + self.assertEqual(strand0_expected.idt, strand0.idt) + self.assertEqual('strand1', strand0.idt.name) + self.assertEqual('25nm', strand0.idt.scale) + self.assertEqual('HPLC', strand0.idt.purification) + self.assertEqual('plate1', strand0.idt.plate) + self.assertEqual('A2', strand0.idt.well) + def test_domain_labels(self) -> None: helices = [sc.Helix(max_offset=100), sc.Helix(max_offset=100)] dom00_expected = sc.Domain(0, True, 0, 10, label='domain 00') From ecf5ced2ebd2d194f07630d6145c4583c5148596 Mon Sep 17 00:00:00 2001 From: Benjamin Lee Date: Fri, 2 Oct 2020 11:18:51 -0700 Subject: [PATCH 12/23] Adds PR to CI workflow This fixes issue where PR from external forks would not have CI checks, as in [this PR](https://github.com/UC-Davis-molecular-computing/scadnano-python-package/pull/142). This commit fixes this issue, as shown in this [sample PR](https://github.com/UnHumbleBen/scadnano-python-package-1/pull/5). You can see that CI tests run now. --- .github/workflows/check_pypi_packaging.yml | 1 + .github/workflows/docs-check.yml | 2 +- .github/workflows/run_unit_tests.yml | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check_pypi_packaging.yml b/.github/workflows/check_pypi_packaging.yml index 491fee68..db863adc 100644 --- a/.github/workflows/check_pypi_packaging.yml +++ b/.github/workflows/check_pypi_packaging.yml @@ -4,6 +4,7 @@ on: push: branches-ignore: - "master" + pull_request: jobs: check_pypi_packaging: diff --git a/.github/workflows/docs-check.yml b/.github/workflows/docs-check.yml index ad4e0bc4..e51c808d 100644 --- a/.github/workflows/docs-check.yml +++ b/.github/workflows/docs-check.yml @@ -1,5 +1,5 @@ name: "Docs Check" -on: push +on: [push, pull_request] jobs: docs: diff --git a/.github/workflows/run_unit_tests.yml b/.github/workflows/run_unit_tests.yml index b5cf965d..906f395f 100644 --- a/.github/workflows/run_unit_tests.yml +++ b/.github/workflows/run_unit_tests.yml @@ -1,6 +1,6 @@ name: Run Unit Tests -on: [push] +on: [push, pull_request] jobs: build: From 0bd0082f824c7088f5b69a81a48b5482ec594d35 Mon Sep 17 00:00:00 2001 From: Benjamin Lee Date: Fri, 2 Oct 2020 12:01:22 -0700 Subject: [PATCH 13/23] Remove push events from CI workflow --- .github/workflows/check_pypi_packaging.yml | 3 --- .github/workflows/docs-check.yml | 2 +- .github/workflows/run_unit_tests.yml | 2 +- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/check_pypi_packaging.yml b/.github/workflows/check_pypi_packaging.yml index db863adc..4241d23d 100644 --- a/.github/workflows/check_pypi_packaging.yml +++ b/.github/workflows/check_pypi_packaging.yml @@ -1,9 +1,6 @@ name: "Check PyPI Packaging" on: - push: - branches-ignore: - - "master" pull_request: jobs: diff --git a/.github/workflows/docs-check.yml b/.github/workflows/docs-check.yml index e51c808d..21fd2c0e 100644 --- a/.github/workflows/docs-check.yml +++ b/.github/workflows/docs-check.yml @@ -1,5 +1,5 @@ name: "Docs Check" -on: [push, pull_request] +on: pull_request jobs: docs: diff --git a/.github/workflows/run_unit_tests.yml b/.github/workflows/run_unit_tests.yml index 906f395f..c3f08deb 100644 --- a/.github/workflows/run_unit_tests.yml +++ b/.github/workflows/run_unit_tests.yml @@ -1,6 +1,6 @@ name: Run Unit Tests -on: [push, pull_request] +on: pull_request jobs: build: From 8787c6da83a01aed7897b7abbb18a26bbfadc0d2 Mon Sep 17 00:00:00 2001 From: David Doty Date: Thu, 8 Oct 2020 19:45:58 -0700 Subject: [PATCH 14/23] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 674b2a29..526b4a9e 100644 --- a/README.md +++ b/README.md @@ -177,7 +177,7 @@ if __name__ == '__main__': design.write_scadnano_file(directory='output_designs') ``` -Running the code above produces the `.sc` JSON file shown above. The [web interface README](https://github.com/UC-Davis-molecular-computing/scadnano/blob/master/README.md#terminology) explains many of the terms used in the code (domain, helix, loopout, insertion, etc.). +Running the code above produces a `.sc` file that, if loaded into scadnano, should appear as in the screenshot above. The [web interface README](https://github.com/UC-Davis-molecular-computing/scadnano/blob/master/README.md#terminology) explains many of the terms used in the code (domain, helix, loopout, insertion, etc.). ## abbreviated syntax with chained methods From 0e5b323c3788a981961b63e68ce3ca45dbdbbca7 Mon Sep 17 00:00:00 2001 From: David Doty Date: Thu, 8 Oct 2020 19:49:49 -0700 Subject: [PATCH 15/23] corrected relative link to .sc file in tutorial --- tutorial/tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorial/tutorial.md b/tutorial/tutorial.md index 13ad93c6..a9949878 100644 --- a/tutorial/tutorial.md +++ b/tutorial/tutorial.md @@ -23,7 +23,7 @@ The design will look like this when we are done: ![](images/complete_design_no_DNA.png) -The completed design is available as a [`.sc` file](https://raw.githubusercontent.com/UC-Davis-molecular-computing/scadnano/master/web/examples/output_designs/24_helix_origami_rectangle_twist_corrected.sc) readable by scadnano. Download it and save it somewhere on your local file system. +The completed design is available as a [`.sc` file](https://raw.githubusercontent.com/UC-Davis-molecular-computing/scadnano/master/web/examples/24_helix_origami_rectangle_twist_corrected.sc) readable by scadnano. Download it and save it somewhere on your local file system. To view it, first open scadnano in your browser: https://scadnano.org. From 2ad4868e3f26ed3c8cf0967fb50cac6d6703186a Mon Sep 17 00:00:00 2001 From: Benjamin Lee Date: Sun, 1 Nov 2020 11:51:19 -0800 Subject: [PATCH 16/23] Fixes #144; swap position x z coordinate interpretation --- scadnano/scadnano.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scadnano/scadnano.py b/scadnano/scadnano.py index 89ac847d..2e85ef6b 100644 --- a/scadnano/scadnano.py +++ b/scadnano/scadnano.py @@ -44,7 +44,7 @@ # commented out for now to support Py3.6, which does not support this feature # from __future__ import annotations -__version__ = "0.12.2" # version line; WARNING: do not remove or change this line or comment +__version__ = "0.13.0" # version line; WARNING: do not remove or change this line or comment import dataclasses from abc import abstractmethod, ABC @@ -930,7 +930,7 @@ class Position3D(_JSONSerializable): x: float = 0 """x-coordinate of position. - Increasing `x` moves right in the main view and into the screen in the side view.""" + Increasing `x` moves right in the side view and out of the screen in the main view.""" y: float = 0 """y-coordinate of position. @@ -939,7 +939,7 @@ class Position3D(_JSONSerializable): z: float = 0 """z-coordinate of position. - Increasing `z` moves right in the side view and out of the screen in the main view.""" + Increasing `z` moves right in the main view and into the screen in the side view.""" def to_json_serializable(self, suppress_indent: bool = True, **kwargs: Any) -> Dict[str, Any]: dct: Dict[str, Any] = dict(self.__dict__) From 34d24fe4116fd1dcda04e610c89b7738e0b825b5 Mon Sep 17 00:00:00 2001 From: Benjamin Lee Date: Sun, 8 Nov 2020 02:59:23 -0800 Subject: [PATCH 17/23] Rewrite none-grid example scripts for #144 Swapped x and z values of helix groups and helix positions, with the exception of 1_staple_1_helix_origami_position_nondefault.sc where the exact position didn't matter --- examples/4_helix_grid_none.py | 8 +++---- ...d_none_min_offset_position_x_nondefault.py | 6 ++--- .../helices_out_of_order_nonconsecutive.py | 2 +- examples/helix_groups.py | 6 ++--- ...ple_1_helix_origami_position_nondefault.sc | 2 +- examples/output_designs/4_helix_grid_none.sc | 21 ++++------------ ...d_none_min_offset_position_x_nondefault.sc | 24 ++++--------------- .../helices_out_of_order_nonconsecutive.sc | 12 +++++----- examples/output_designs/helix_groups.sc | 22 +++++------------ 9 files changed, 34 insertions(+), 69 deletions(-) diff --git a/examples/4_helix_grid_none.py b/examples/4_helix_grid_none.py index e71d7c90..51a6466e 100644 --- a/examples/4_helix_grid_none.py +++ b/examples/4_helix_grid_none.py @@ -4,10 +4,10 @@ def create_design(): length = 10 helices = [ - sc.Helix(max_offset=length, position=sc.Position3D(x=2.5, y=0, z=0), pitch=0, roll=0, yaw=0), - sc.Helix(max_offset=length, position=sc.Position3D(x=0, y=3, z=3), pitch=0, roll=0, yaw=0), - sc.Helix(max_offset=length, position=sc.Position3D(x=0, y=-3, z=8), pitch=0, roll=0, yaw=0), - sc.Helix(max_offset=length, position=sc.Position3D(x=0, y=1, z=11), pitch=0, roll=0, yaw=0), + sc.Helix(max_offset=length, position=sc.Position3D(x=0, y=0, z=2.5), pitch=0, roll=0, yaw=0), + sc.Helix(max_offset=length, position=sc.Position3D(x=3, y=3, z=0), pitch=0, roll=0, yaw=0), + sc.Helix(max_offset=length, position=sc.Position3D(x=8, y=-3, z=0), pitch=0, roll=0, yaw=0), + sc.Helix(max_offset=length, position=sc.Position3D(x=11, y=1, z=0), pitch=0, roll=0, yaw=0), ] stap_ss = sc.Domain(0, True, 0, length) scaf_ss = sc.Domain(0, False, 0, length) diff --git a/examples/4_helix_grid_none_min_offset_position_x_nondefault.py b/examples/4_helix_grid_none_min_offset_position_x_nondefault.py index 1393a733..34c966cc 100644 --- a/examples/4_helix_grid_none_min_offset_position_x_nondefault.py +++ b/examples/4_helix_grid_none_min_offset_position_x_nondefault.py @@ -6,11 +6,11 @@ def create_design(): helices = [ sc.Helix(major_tick_distance=4, max_offset=length, position=sc.Position3D(x=0, y=0, z=0), min_offset=0), - sc.Helix(major_tick_distance=4, max_offset=length, position=sc.Position3D(x=0, y=3, z=3), + sc.Helix(major_tick_distance=4, max_offset=length, position=sc.Position3D(x=3, y=3, z=0), min_offset=8), - sc.Helix(major_tick_distance=4, max_offset=length, position=sc.Position3D(x=2.5, y=-3, z=8), + sc.Helix(major_tick_distance=4, max_offset=length, position=sc.Position3D(x=8, y=-3, z=2.5), min_offset=0), - sc.Helix(major_tick_distance=4, max_offset=length, position=sc.Position3D(x=2.5, y=1, z=11), + sc.Helix(major_tick_distance=4, max_offset=length, position=sc.Position3D(x=11, y=1, z=2.5), min_offset=8), ] design = sc.Design(helices=helices, strands=[ diff --git a/examples/helices_out_of_order_nonconsecutive.py b/examples/helices_out_of_order_nonconsecutive.py index 6fce0c74..4eca5933 100644 --- a/examples/helices_out_of_order_nonconsecutive.py +++ b/examples/helices_out_of_order_nonconsecutive.py @@ -1,5 +1,5 @@ -import origami_rectangle as rect import scadnano as sc +from scadnano import origami_rectangle as rect def create_design(): diff --git a/examples/helix_groups.py b/examples/helix_groups.py index c94cc00d..dbe83520 100644 --- a/examples/helix_groups.py +++ b/examples/helix_groups.py @@ -33,8 +33,8 @@ def create_design(): group_north = sc.HelixGroup(position=sc.Position3D(x=0, y=-10, z=0), grid=sc.honeycomb) group_south = sc.HelixGroup(position=sc.Position3D(x=0, y=10, z=0), helices_view_order=[7, 6], grid=sc.square) - group_east = sc.HelixGroup(position=sc.Position3D(x=10, y=0, z=0), grid=sc.square) - group_west = sc.HelixGroup(position=sc.Position3D(x=-10, y=0, z=0), grid=sc.Grid.none) + group_east = sc.HelixGroup(position=sc.Position3D(x=0, y=0, z=10), grid=sc.square) + group_west = sc.HelixGroup(position=sc.Position3D(x=0, y=0, z=-10), grid=sc.Grid.none) groups = { n: group_north, e: group_east, @@ -43,7 +43,7 @@ def create_design(): } if include_rot: - group_rot = sc.HelixGroup(position=sc.Position3D(x=10, y=10, z=0), pitch=45, grid=sc.square) + group_rot = sc.HelixGroup(position=sc.Position3D(x=00, y=10, z=10), pitch=45, grid=sc.square) groups['r'] = group_rot design = sc.Design(helices=helices, groups=groups, strands=[]) diff --git a/examples/output_designs/1_staple_1_helix_origami_position_nondefault.sc b/examples/output_designs/1_staple_1_helix_origami_position_nondefault.sc index ae69ba1d..308d2793 100644 --- a/examples/output_designs/1_staple_1_helix_origami_position_nondefault.sc +++ b/examples/output_designs/1_staple_1_helix_origami_position_nondefault.sc @@ -1,5 +1,5 @@ { - "version": "0.11.0", + "version": "0.13.0", "grid": "none", "helices": [ { diff --git a/examples/output_designs/4_helix_grid_none.sc b/examples/output_designs/4_helix_grid_none.sc index f221aa48..ab91b929 100644 --- a/examples/output_designs/4_helix_grid_none.sc +++ b/examples/output_designs/4_helix_grid_none.sc @@ -1,22 +1,11 @@ { - "version": "0.11.0", + "version": "0.13.0", "grid": "none", "helices": [ - { - "position": {"x": 2.5, "y": 0, "z": 0} - }, - { - "max_offset": 10, - "position": {"x": 0, "y": 3, "z": 3} - }, - { - "max_offset": 10, - "position": {"x": 0, "y": -3, "z": 8} - }, - { - "max_offset": 10, - "position": {"x": 0, "y": 1, "z": 11} - } + {"position": {"x": 0, "y": 0, "z": 2.5}}, + {"position": {"x": 3, "y": 3, "z": 0}}, + {"position": {"x": 8, "y": -3, "z": 0}}, + {"position": {"x": 11, "y": 1, "z": 0}} ], "strands": [ { diff --git a/examples/output_designs/4_helix_grid_none_min_offset_position_x_nondefault.sc b/examples/output_designs/4_helix_grid_none_min_offset_position_x_nondefault.sc index 682c5cbc..5e6988f7 100644 --- a/examples/output_designs/4_helix_grid_none_min_offset_position_x_nondefault.sc +++ b/examples/output_designs/4_helix_grid_none_min_offset_position_x_nondefault.sc @@ -1,25 +1,11 @@ { - "version": "0.11.0", + "version": "0.13.0", "grid": "none", "helices": [ - { - "position": {"x": 0, "y": 0, "z": 0}, - "major_tick_distance": 4 - }, - { - "min_offset": 8, - "position": {"x": 0, "y": 3, "z": 3}, - "major_tick_distance": 4 - }, - { - "position": {"x": 2.5, "y": -3, "z": 8}, - "major_tick_distance": 4 - }, - { - "min_offset": 8, - "position": {"x": 2.5, "y": 1, "z": 11}, - "major_tick_distance": 4 - } + {"position": {"x": 0, "y": 0, "z": 0}, "major_tick_distance": 4}, + {"min_offset": 8, "position": {"x": 3, "y": 3, "z": 0}, "major_tick_distance": 4}, + {"position": {"x": 8, "y": -3, "z": 2.5}, "major_tick_distance": 4}, + {"min_offset": 8, "position": {"x": 11, "y": 1, "z": 2.5}, "major_tick_distance": 4} ], "strands": [ { diff --git a/examples/output_designs/helices_out_of_order_nonconsecutive.sc b/examples/output_designs/helices_out_of_order_nonconsecutive.sc index adcc96ab..ced5ff19 100644 --- a/examples/output_designs/helices_out_of_order_nonconsecutive.sc +++ b/examples/output_designs/helices_out_of_order_nonconsecutive.sc @@ -1,12 +1,12 @@ { - "version": "0.11.0", + "version": "0.13.0", "grid": "none", "helices": [ - {"max_offset": 20, "grid_position": null, "idx": 2}, - {"max_offset": 20, "grid_position": null, "idx": 3}, - {"max_offset": 20, "grid_position": null, "idx": 5}, - {"max_offset": 20, "grid_position": null, "idx": 7}, - {"max_offset": 20, "grid_position": null, "idx": 11} + {"max_offset": 20, "position": {"x": 0, "y": 0.0, "z": 0}, "idx": 2}, + {"max_offset": 20, "position": {"x": 0, "y": 3.0, "z": 0}, "idx": 3}, + {"max_offset": 20, "position": {"x": 0, "y": 6.0, "z": 0}, "idx": 5}, + {"max_offset": 20, "position": {"x": 0, "y": 9.0, "z": 0}, "idx": 7}, + {"max_offset": 20, "position": {"x": 0, "y": 12.0, "z": 0}, "idx": 11} ], "strands": [] } \ No newline at end of file diff --git a/examples/output_designs/helix_groups.sc b/examples/output_designs/helix_groups.sc index c4879868..b9bcf03c 100644 --- a/examples/output_designs/helix_groups.sc +++ b/examples/output_designs/helix_groups.sc @@ -1,12 +1,12 @@ { - "version": "0.11.0", + "version": "0.13.0", "groups": { "north": { "position": {"x": 0, "y": -10, "z": 0}, "grid": "honeycomb" }, "east": { - "position": {"x": 10, "y": 0, "z": 0}, + "position": {"x": 0, "y": 0, "z": 10}, "grid": "square" }, "south": { @@ -15,11 +15,11 @@ "helices_view_order": [7, 6] }, "west": { - "position": {"x": -10, "y": 0, "z": 0}, + "position": {"x": 0, "y": 0, "z": -10}, "grid": "none" }, "r": { - "position": {"x": 10, "y": 10, "z": 0}, + "position": {"x": 0, "y": 10, "z": 10}, "pitch": 45, "grid": "square" } @@ -33,18 +33,8 @@ {"group": "north", "max_offset": 16, "grid_position": [-1, 0], "idx": 5}, {"group": "south", "max_offset": 24, "grid_position": [0, 1], "idx": 6}, {"group": "south", "max_offset": 25, "grid_position": [0, 0], "idx": 7}, - { - "group": "west", - "max_offset": 26, - "position": {"x": 0, "y": 0, "z": 0}, - "idx": 8 - }, - { - "group": "west", - "max_offset": 27, - "position": {"x": 0, "y": 3, "z": 0}, - "idx": 9 - }, + {"group": "west", "max_offset": 26, "position": {"x": 0, "y": 0, "z": 0}, "idx": 8}, + {"group": "west", "max_offset": 27, "position": {"x": 0, "y": 3, "z": 0}, "idx": 9}, {"group": "r", "max_offset": 26, "grid_position": [0, 0], "idx": 10}, {"group": "r", "max_offset": 27, "grid_position": [0, 1], "idx": 11}, {"group": "east", "max_offset": 22, "grid_position": [0, 0], "idx": 13}, From a2a31f60baf5001936cd8f613cb6a7bfe2350fa9 Mon Sep 17 00:00:00 2001 From: Benjamin Lee Date: Sun, 8 Nov 2020 17:58:21 -0800 Subject: [PATCH 18/23] Update proposal example for #144 --- examples/proposal/beth.sc | 70 +++++++++++------------ examples/proposal/marry.sc | 70 +++++++++++------------ examples/proposal/me-square-grid.sc | 86 +++++++---------------------- examples/proposal/me.sc | 70 +++++++++++------------ examples/proposal/will.sc | 70 +++++++++++------------ examples/proposal/yes.sc | 70 +++++++++++------------ examples/proposal/yim.sc | 70 +++++++++++------------ examples/proposal/you.sc | 70 +++++++++++------------ 8 files changed, 264 insertions(+), 312 deletions(-) diff --git a/examples/proposal/beth.sc b/examples/proposal/beth.sc index 83d21899..1c542769 100644 --- a/examples/proposal/beth.sc +++ b/examples/proposal/beth.sc @@ -1,70 +1,70 @@ { - "version": "0.10.1", + "version": "0.13.0", "grid": "none", "helices": [ { - "max_offset": 512, - "position": {"x": 0, "y": 0, "z": 0} + "position": {"x": 0, "y": 0, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.0, "z": 2.5} + "position": {"x": 2.5, "y": 0, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.9567085809127245, "z": 4.809698831278217} + "position": {"x": 4.809698831278217, "y": 0.9567085809127245, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 2.7244755338790934, "z": 6.577465784244586} + "position": {"x": 6.577465784244586, "y": 2.7244755338790934, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 5.034174365157311, "z": 7.534174365157311} + "position": {"x": 7.534174365157311, "y": 5.034174365157311, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 7.534174365157311, "z": 7.534174365157311} + "position": {"x": 7.534174365157311, "y": 7.534174365157311, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 9.843873196435528, "z": 6.577465784244587} + "position": {"x": 6.577465784244587, "y": 9.843873196435528, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 11.611640149401897, "z": 4.809698831278218} + "position": {"x": 4.809698831278218, "y": 11.611640149401897, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 12.568348730314622, "z": 2.500000000000001} + "position": {"x": 2.500000000000001, "y": 12.568348730314622, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 12.568348730314622, "z": 8.881784197001252e-16} + "position": {"x": 8.881784197001252e-16, "y": 12.568348730314622, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 11.611640149401897, "z": -2.309698831278216} + "position": {"x": -2.309698831278216, "y": 11.611640149401897, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 9.843873196435528, "z": -4.077465784244586} + "position": {"x": -4.077465784244586, "y": 9.843873196435528, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 7.534174365157312, "z": -5.034174365157312} + "position": {"x": -5.034174365157312, "y": 7.534174365157312, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 5.034174365157312, "z": -5.0341743651573125} + "position": {"x": -5.0341743651573125, "y": 5.034174365157312, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 2.724475533879095, "z": -4.077465784244588} + "position": {"x": -4.077465784244588, "y": 2.724475533879095, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.9567085809127276, "z": -2.309698831278218} + "position": {"x": -2.309698831278218, "y": 0.9567085809127276, "z": 0}, + "max_offset": 512 } ], "helices_view_order": [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0], @@ -80,6 +80,7 @@ { "color": "#0066cc", "sequence": "TTCCCTTCCTTTCTCGCCACGTTCGCCGGCTTTCCCCGTCAAGCTCTAAATCGGGGGCTCCCTTTAGGGTTCCGATTTAGTGCTTTACGGCACCTCGACCCCAAAAAACTTGATTTGGGTGATGGTTCACGTAGTGGGCCATCGCCCTGATAGACGGTTTTTCGCCCTTTGACGTTGGAGTCCACGTTCTTTAATAGTGGACTCTTGTTCCAAACTGGAACAACACTCAACCCTATCTCGGGCTATTCTTTTGATTTATAAGGGATTTTGCCGATTTCGGAACCACCATCAAACAGGATTTTCGCCTGCTGGGGCAAACCAGCGTGGACCGCTTGCTGCAACTCTCTCAGGGCCAGGCGGTGAAGGGCAATCAGCTGTTGCCCGTCTCACTGGTGAAAAGAAAAACCACCCTGGCGCCCAATACGCAAACCGCCTCTCCCCGCGCGTTGGCCGATTCATTAATGCAGCTGGCACGACAGGTTTCCCGACTGGAAAGCGGGCAGTGAGCGCAACGCAATTAATGTGAGTTAGCTCACTCATTAGGCACCCCAGGCTTTACACTTTATGCTTCCGGCTCGTATGTTGTGTGGAATTGTGAGCGGATAACAATTTCACACAGGAAACAGCTATGACCATGATTACGAATTCGAGCTCGGTACCCGGGGATCCTCTAGAGTCGACCTGCAGGCATGCAAGCTTGGCACTGGCCGTCGTTTTACAACGTCGTGACTGGGAAAACCCTGGCGTTACCCAACTTAATCGCCTTGCAGCACATCCCCCTTTCGCCAGCTGGCGTAATAGCGAAGAGGCCCGCACCGATCGCCCTTCCCAACAGTTGCGCAGCCTGAATGGCGAATGGCGCTTTGCCTGGTTTCCGGCACCAGAAGCGGTGCCGGAAAGCTGGCTGGAGTGCGATCTTCCTGAGGCCGATACTGTCGTCGTCCCCTCAAACTGGCAGATGCACGGTTACGATGCGCCCATCTACACCAACGTGACCTATCCCATTACGGTCAATCCGCCGTTTGTTCCCACGGAGAATCCGACGGGTTGTTACTCGCTCACATTTAATGTTGATGAAAGCTGGCTACAGGAAGGCCAGACGCGAATTATTTTTGATGGCGTTCCTATTGGTTAAAAAATGAGCTGATTTAACAAAAATTTAATGCGAATTTTAACAAAATATTAACGTTTACAATTTAAATATTTGCTTATACAATCTTCCTGTTTTTGGGGCTTTTCTGATTATCAACCGGGGTACATATGATTGACATGCTAGTTTTACGATTACCGTTCATCGATTCTCTTGTTTGCTCCAGACTCTCAGGCAATGACCTGATAGCCTTTGTAGATCTCTCAAAAATAGCTACCCTCTCCGGCATTAATTTATCAGCTAGAACGGTTGAATATCATATTGATGGTGATTTGACTGTCTCCGGCCTTTCTCACCCTTTTGAATCTTTACCTACACATTACTCAGGCATTGCATTTAAAATATATGAGGGTTCTAAAAATTTTTATCCTTGCGTTGAAATAAAGGCTTCTCCCGCAAAAGTATTACAGGGTCATAATGTTTTTGGTACAACCGATTTAGCTTTATGCTCTGAGGCTTTATTGCTTAATTTTGCTAATTCTTTGCCTTGCCTGTATGATTTATTGGATGTTAATGCTACTACTATTAGTAGAATTGATGCCACCTTTTCAGCTCGCGCCCCAAATGAAAATATAGCTAAACAGGTTATTGACCATTTGCGAAATGTATCTAATGGTCAAACTAAATCTACTCGTTCGCAGAATTGGGAATCAACTGTTATATGGAATGAAACTTCCAGACACCGTACTTTAGTTGCATATTTAAAACATGTTGAGCTACAGCATTATATTCAGCAATTAAGCTCTAAGCCATCCGCAAAAATGACCTCTTATCAAAAGGAGCAATTAAAGGTACTCTCTAATCCTGACCTGTTGGAGTTTGCTTCCGGTCTGGTTCGCTTTGAAGCTCGAATTAAAACGCGATATTTGAAGTCTTTCGGGCTTCCTCTTAATCTTTTTGATGCAATCCGCTTTGCTTCTGACTATAATAGTCAGGGTAAAGACCTGATTTTTGATTTATGGTCATTCTCGTTTTCTGAACTGTTTAAAGCATTTGAGGGGGATTCAATGAATATTTATGACGATTCCGCAGTATTGGACGCTATCCAGTCTAAACATTTTACTATTACCCCCTCTGGCAAAACTTCTTTTGCAAAAGCCTCTCGCTATTTTGGTTTTTATCGTCGTCTGGTAAACGAGGGTTATGATAGTGTTGCTCTTACTATGCCTCGTAATTCCTTTTGGCGTTATGTATCTGCATTAGTTGAATGTGGTATTCCTAAATCTCAACTGATGAATCTTTCTACCTGTAATAATGTTGTTCCGTTAGTTCGTTTTATTAACGTAGATTTTTCTTCCCAACGTCCTGACTGGTATAATGAGCCAGTTCTTAAAATCGCATAAGGTAATTCACAATGATTAAAGTTGAAATTAAACCATCTCAAGCCCAATTTACTACTCGTTCTGGTGTTTCTCGTCAGGGCAAGCCTTATTCACTGAATGAGCAGCTTTGTTACGTTGATTTGGGTAATGAATATCCGGTTCTTGTCAAGATTACTCTTGATGAAGGTCAGCCAGCCTATGCGCCTGGTCTGTACACCGTTCATCTGTCCTCTTTCAAAGTTGGTCAGTTCGGTTCCCTTATGATTGACCGTCTGCGCCTCGTTCCGGCTAAGTAACATGGAGCAGGTCGCGGATTTCGACACAATTTATCAGGCGATGATACAAATCTCCGTTGTACTTTGTTTCGCGCTTGGTATAATCGCTGGGGGTCAAAGATGAGTGTTTTAGTGTATTCTTTTGCCTCTTTCGTTTTAGGTTGGTGCCTTCGTAGTGGCATTACGTATTTTACCCGTTTAATGGAAACTTCCTCATGAAAAAGTCTTTAGTCCTCAAAGCCTCTGTAGCCGTTGCTACCCTCGTTCCGATGCTGTCTTTCGCTGCTGAGGGTGACGATCCCGCAAAAGCGGCCTTTAACTCCCTGCAAGCCTCAGCGACCGAATATATCGGTTATGCGTGGGCGATGGTTGTTGTCATTGTCGGCGCAACTATCGGTATCAAGCTGTTTAAGAAATTCACCTCGAAAGCAAGCTGATAAACCGATACAATTAAAGGCTCCTTTTGGAGCCTTTTTTTTGGAGATTTTCAACGTGAAAAAATTATTATTCGCAATTCCTTTAGTTGTTCCTTTCTATTCTCACTCCGCTGAAACTGTTGAAAGTTGTTTAGCAAAATCCCATACAGAAAATTCATTTACTAACGTCTGGAAAGACGACAAAACTTTAGATCGTTACGCTAACTATGAGGGCTGTCTGTGGAATGCTACAGGCGTTGTAGTTTGTACTGGTGACGAAACTCAGTGTTACGGTACATGGGTTCCTATTGGGCTTGCTATCCCTGAAAATGAGGGTGGTGGCTCTGAGGGTGGCGGTTCTGAGGGTGGCGGTTCTGAGGGTGGCGGTACTAAACCTCCTGAGTACGGTGATACACCTATTCCGGGCTATACTTATATCAACCCTCTCGACGGCACTTATCCGCCTGGTACTGAGCAAAACCCCGCTAATCCTAATCCTTCTCTTGAGGAGTCTCAGCCTCTTAATACTTTCATGTTTCAGAATAATAGGTTCCGAAATAGGCAGGGGGCATTAACTGTTTATACGGGCACTGTTACTCAAGGCACTGACCCCGTTAAAACTTATTACCAGTACACTCCTGTATCATCAAAAGCCATGTATGACGCTTACTGGAACGGTAAATTCAGAGACTGCGCTTTCCATTCTGGCTTTAATGAGGATTTATTTGTTTGTGAATATCAAGGCCAATCGTCTGACCTGCCTCAACCTCCTGTCAATGCTGGCGGCGGCTCTGGTGGTGGTTCTGGTGGCGGCTCTGAGGGTGGTGGCTCTGAGGGTGGCGGTTCTGAGGGTGGCGGCTCTGAGGGAGGCGGTTCCGGTGGTGGCTCTGGTTCCGGTGATTTTGATTATGAAAAGATGGCAAACGCTAATAAGGGGGCTATGACCGAAAATGCCGATGAAAACGCGCTACAGTCTGACGCTAAAGGCAAACTTGATTCTGTCGCTACTGATTACGGTGCTGCTATCGATGGTTTCATTGGTGACGTTTCCGGCCTTGCTAATGGTAATGGTGCTACTGGTGATTTTGCTGGCTCTAATTCCCAAATGGCTCAAGTCGGTGACGGTGATAATTCACCTTTAATGAATAATTTCCGTCAATATTTACCTTCCCTCCCTCAATCGGTTGAATGTCGCCCTTTTGTCTTTGGCGCTGGTAAACCATATGAATTTTCTATTGATTGTGACAAAATAAACTTATTCCGTGGTGTCTTTGCGTTTCTTTTATATGTTGCCACCTTTATGTATGTATTTTCTACGTTTGCTAACATACTGCGTAATAAGGAGTCTTAATCATGCCAGTTCTTTTGGGTATTCCGTTATTATTGCGTTTCCTCGGTTTCCTTCTGGTAACTTTGTTCGGCTATCTGCTTACTTTTCTTAAAAAGGGCTTCGGTAAGATAGCTATTGCTATTTCATTGTTTCTTGCTCTTATTATTGGGCTTAACTCAATTCTTGTGGGTTATCTCTCTGATATTAGCGCTCAATTACCCTCTGACTTTGTTCAGGGTGTTCAGTTAATTCTCCCGTCTAATGCGCTTCCCTGTTTTTATGTTATTCTCTCTGTAAAGGCTGCTATTTTCATTTTTGACGTTAAACAAAAAATCGTTTCTTATTTGGATTGGGATAAATAATATGGCTGTTTATTTTGTAACTGGCAAATTAGGCTCTGGAAAGACGCTCGTTAGCGTTGGTAAGATTCAGGATAAAATTGTAGCTGGGTGCAAAATAGCAACTAATCTTGATTTAAGGCTTCAAAACCTCCCGCAAGTCGGGAGGTTCGCTAAAACGCCTCGCGTTCTTAGAATACCGGATAAGCCTTCTATATCTGATTTGCTTGCTATTGGGCGCGGTAATGATTCCTACGATGAAAATAAAAACGGCTTGCTTGTTCTCGATGAGTGCGGTACTTGGTTTAATACCCGTTCTTGGAATGATAAGGAAAGACAGCCGATTATTGATTGGTTTCTACATGCTCGTAAATTAGGATGGGATATTATTTTTCTTGTTCAGGACTTATCTATTGTTGATAAACAGGCGCGTTCTGCATTAGCTGAACATGTTGTTTATTGTCGTCGTCTGGACAGAATTACTTTACCTTTTGTCGGTACTTTATATTCTCTTATTACTGGCTCGAAAATGCCTCTGCCTAAATTACATGTTGGCGTTGTTAAATATGGCGATTCTCAATTAAGCCCTACTGTTGAGCGTTGGCTTTATACTGGTAAGAATTTGTATAACGCATATGATACTAAACAGGCTTTTTCTAGTAATTATGATTCCGGTGTTTATTCTTATTTAACGCCTTATTTATCACACGGTCGGTATTTCAAACCATTAAATTTAGGTCAGAAGATGAAATTAACTAAAATATATTTGAAAAAGTTTTCTCGCGTTCTTTGTCTTGCGATTGGATTTGCATCAGCATTTACATATAGTTATATAACCCAACCTAAGCCGGAGGTTAAAAAGGTAGTCTCTCAGACCTATGATTTTGATAAATTCACTATTGACTCTTCTCAGCGTCTTAATCTAAGCTATCGCTATGTTTTCAAGGATTCTAAGGGAAAATTAATTAATAGCGACGATTTACAGAAGCAAGGTTATTCACTCACATATATTGATTTATGTACTGTTTCCATTAAAAAAGGTAATTCAAATGAAATTGTTAAATGTAATTAATTTTGTTTTCTTGATGTTTGTTTCATCATCTTCTTTTGCTCAGGTAATTGAAATGAATAATTCGCCTCTGCGCGATTTTGTAACTTGGTATTCAAAGCAATCAGGCGAATCCGTTATTGTTTCTCCCGATGTAAAAGGTACTGTTACTGTATATTCATCTGACGTTAAACCTGAAAATCTACGCAATTTCTTTATTTCTGTTTTACGTGCAAATAATTTTGATATGGTAGGTTCTAACCCTTCCATTATTCAGAAGTATAATCCAAACAATCAGGATTATATTGATGAATTGCCATCATCTGATAATCAGGAATATGATGATAATTCCGCTCCTTCTGGTGGTTTCTTTGTTCCGCAAAATGATAATGTTACTCAAACTTTTAAAATTAATAACGTTCGGGCAAAGGATTTAATACGAGTTGTCGAATTGTTTGTAAAGTCTAATACTTCTAAATCCTCAAATGTATTATCTATTGACGGCTCTAATCTATTAGTTGTTAGTGCTCCTAAAGATATTTTAGATAACCTTCCTCAATTCCTTTCAACTGTTGATTTGCCAACTGACCAGATATTGATTGAGGGTTTGATATTTGAGGTTCAGCAAGGTGATGCTTTAGATTTTTCATTTGCTGCTGGCTCTCAGCGTGGCACTGTTGCAGGCGGTGTTAATACTGACCGCCTCACCTCTGTTTTATCTTCTGCTGGTGGTTCGTTCGGTATTTTTAATGGCGATGTTTTAGGGCTATCAGTTCGCGCATTAAAGACTAATAGCCATTCAAAAATATTGTCTGTGCCACGTATTCTTACGCTTTCAGGTCAGAAGGGTTCTATCTCTGTTGGCCAGAATGTCCCTTTTATTACTGGTCGTGTGACTGGTGAATCTGCCAATGTAAATAATCCATTTCAGACGATTGAGCGTCAAAATGTAGGTATTTCCATGAGCGTTTTTCCTGTTGCAATGGCTGGCGGTAATATTGTTCTGGATATTACCAGCAAGGCCGATAGTTTGAGTTCTTCTACTCAGGCAAGTGATGTTATTACTAATCAAAGAAGTATTGCTACAACGGTTAATTTGCGTGATGGACAGACTCTTTTACTCGGTGGCCTCACTGATTATAAAA", + "is_scaffold": true, "domains": [ {"helix": 15, "forward": false, "start": 32, "end": 102, "deletions": [68]}, {"helix": 14, "forward": true, "start": 32, "end": 240, "deletions": [68, 115, 163, 212, 59, 91, 123, 155, 187, 219], "insertions": [[75, 1], [107, 1], [139, 1], [171, 1], [203, 1], [235, 1]]}, @@ -112,8 +113,7 @@ {"helix": 13, "forward": false, "start": 240, "end": 480, "deletions": [259, 307, 355, 403, 451, 267, 299, 331, 363, 395, 427], "insertions": [[251, 1], [283, 1], [315, 1], [347, 1], [379, 1], [411, 1]]}, {"helix": 14, "forward": true, "start": 240, "end": 480, "deletions": [259, 307, 355, 403, 451, 251, 283, 315, 347, 379, 411], "insertions": [[267, 1], [299, 1], [331, 1], [363, 1], [395, 1], [427, 1]]}, {"helix": 15, "forward": false, "start": 102, "end": 480, "deletions": [115, 163, 212, 259, 307, 355, 403, 451]} - ], - "is_scaffold": true + ] }, { "color": "#f74308", diff --git a/examples/proposal/marry.sc b/examples/proposal/marry.sc index b9a89c1f..690870cd 100644 --- a/examples/proposal/marry.sc +++ b/examples/proposal/marry.sc @@ -1,70 +1,70 @@ { - "version": "0.10.1", + "version": "0.13.0", "grid": "none", "helices": [ { - "max_offset": 512, - "position": {"x": 0, "y": 0, "z": 0} + "position": {"x": 0, "y": 0, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.0, "z": 2.5} + "position": {"x": 2.5, "y": 0, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.9567085809127245, "z": 4.809698831278217} + "position": {"x": 4.809698831278217, "y": 0.9567085809127245, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 2.7244755338790934, "z": 6.577465784244586} + "position": {"x": 6.577465784244586, "y": 2.7244755338790934, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 5.034174365157311, "z": 7.534174365157311} + "position": {"x": 7.534174365157311, "y": 5.034174365157311, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 7.534174365157311, "z": 7.534174365157311} + "position": {"x": 7.534174365157311, "y": 7.534174365157311, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 9.843873196435528, "z": 6.577465784244587} + "position": {"x": 6.577465784244587, "y": 9.843873196435528, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 11.611640149401897, "z": 4.809698831278218} + "position": {"x": 4.809698831278218, "y": 11.611640149401897, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 12.568348730314622, "z": 2.500000000000001} + "position": {"x": 2.500000000000001, "y": 12.568348730314622, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 12.568348730314622, "z": 8.881784197001252e-16} + "position": {"x": 8.881784197001252e-16, "y": 12.568348730314622, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 11.611640149401897, "z": -2.309698831278216} + "position": {"x": -2.309698831278216, "y": 11.611640149401897, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 9.843873196435528, "z": -4.077465784244586} + "position": {"x": -4.077465784244586, "y": 9.843873196435528, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 7.534174365157312, "z": -5.034174365157312} + "position": {"x": -5.034174365157312, "y": 7.534174365157312, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 5.034174365157312, "z": -5.0341743651573125} + "position": {"x": -5.0341743651573125, "y": 5.034174365157312, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 2.724475533879095, "z": -4.077465784244588} + "position": {"x": -4.077465784244588, "y": 2.724475533879095, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.9567085809127276, "z": -2.309698831278218} + "position": {"x": -2.309698831278218, "y": 0.9567085809127276, "z": 0}, + "max_offset": 512 } ], "helices_view_order": [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0], @@ -80,6 +80,7 @@ { "color": "#0066cc", "sequence": "TTCCCTTCCTTTCTCGCCACGTTCGCCGGCTTTCCCCGTCAAGCTCTAAATCGGGGGCTCCCTTTAGGGTTCCGATTTAGTGCTTTACGGCACCTCGACCCCAAAAAACTTGATTTGGGTGATGGTTCACGTAGTGGGCCATCGCCCTGATAGACGGTTTTTCGCCCTTTGACGTTGGAGTCCACGTTCTTTAATAGTGGACTCTTGTTCCAAACTGGAACAACACTCAACCCTATCTCGGGCTATTCTTTTGATTTATAAGGGATTTTGCCGATTTCGGAACCACCATCAAACAGGATTTTCGCCTGCTGGGGCAAACCAGCGTGGACCGCTTGCTGCAACTCTCTCAGGGCCAGGCGGTGAAGGGCAATCAGCTGTTGCCCGTCTCACTGGTGAAAAGAAAAACCACCCTGGCGCCCAATACGCAAACCGCCTCTCCCCGCGCGTTGGCCGATTCATTAATGCAGCTGGCACGACAGGTTTCCCGACTGGAAAGCGGGCAGTGAGCGCAACGCAATTAATGTGAGTTAGCTCACTCATTAGGCACCCCAGGCTTTACACTTTATGCTTCCGGCTCGTATGTTGTGTGGAATTGTGAGCGGATAACAATTTCACACAGGAAACAGCTATGACCATGATTACGAATTCGAGCTCGGTACCCGGGGATCCTCTAGAGTCGACCTGCAGGCATGCAAGCTTGGCACTGGCCGTCGTTTTACAACGTCGTGACTGGGAAAACCCTGGCGTTACCCAACTTAATCGCCTTGCAGCACATCCCCCTTTCGCCAGCTGGCGTAATAGCGAAGAGGCCCGCACCGATCGCCCTTCCCAACAGTTGCGCAGCCTGAATGGCGAATGGCGCTTTGCCTGGTTTCCGGCACCAGAAGCGGTGCCGGAAAGCTGGCTGGAGTGCGATCTTCCTGAGGCCGATACTGTCGTCGTCCCCTCAAACTGGCAGATGCACGGTTACGATGCGCCCATCTACACCAACGTGACCTATCCCATTACGGTCAATCCGCCGTTTGTTCCCACGGAGAATCCGACGGGTTGTTACTCGCTCACATTTAATGTTGATGAAAGCTGGCTACAGGAAGGCCAGACGCGAATTATTTTTGATGGCGTTCCTATTGGTTAAAAAATGAGCTGATTTAACAAAAATTTAATGCGAATTTTAACAAAATATTAACGTTTACAATTTAAATATTTGCTTATACAATCTTCCTGTTTTTGGGGCTTTTCTGATTATCAACCGGGGTACATATGATTGACATGCTAGTTTTACGATTACCGTTCATCGATTCTCTTGTTTGCTCCAGACTCTCAGGCAATGACCTGATAGCCTTTGTAGATCTCTCAAAAATAGCTACCCTCTCCGGCATTAATTTATCAGCTAGAACGGTTGAATATCATATTGATGGTGATTTGACTGTCTCCGGCCTTTCTCACCCTTTTGAATCTTTACCTACACATTACTCAGGCATTGCATTTAAAATATATGAGGGTTCTAAAAATTTTTATCCTTGCGTTGAAATAAAGGCTTCTCCCGCAAAAGTATTACAGGGTCATAATGTTTTTGGTACAACCGATTTAGCTTTATGCTCTGAGGCTTTATTGCTTAATTTTGCTAATTCTTTGCCTTGCCTGTATGATTTATTGGATGTTAATGCTACTACTATTAGTAGAATTGATGCCACCTTTTCAGCTCGCGCCCCAAATGAAAATATAGCTAAACAGGTTATTGACCATTTGCGAAATGTATCTAATGGTCAAACTAAATCTACTCGTTCGCAGAATTGGGAATCAACTGTTATATGGAATGAAACTTCCAGACACCGTACTTTAGTTGCATATTTAAAACATGTTGAGCTACAGCATTATATTCAGCAATTAAGCTCTAAGCCATCCGCAAAAATGACCTCTTATCAAAAGGAGCAATTAAAGGTACTCTCTAATCCTGACCTGTTGGAGTTTGCTTCCGGTCTGGTTCGCTTTGAAGCTCGAATTAAAACGCGATATTTGAAGTCTTTCGGGCTTCCTCTTAATCTTTTTGATGCAATCCGCTTTGCTTCTGACTATAATAGTCAGGGTAAAGACCTGATTTTTGATTTATGGTCATTCTCGTTTTCTGAACTGTTTAAAGCATTTGAGGGGGATTCAATGAATATTTATGACGATTCCGCAGTATTGGACGCTATCCAGTCTAAACATTTTACTATTACCCCCTCTGGCAAAACTTCTTTTGCAAAAGCCTCTCGCTATTTTGGTTTTTATCGTCGTCTGGTAAACGAGGGTTATGATAGTGTTGCTCTTACTATGCCTCGTAATTCCTTTTGGCGTTATGTATCTGCATTAGTTGAATGTGGTATTCCTAAATCTCAACTGATGAATCTTTCTACCTGTAATAATGTTGTTCCGTTAGTTCGTTTTATTAACGTAGATTTTTCTTCCCAACGTCCTGACTGGTATAATGAGCCAGTTCTTAAAATCGCATAAGGTAATTCACAATGATTAAAGTTGAAATTAAACCATCTCAAGCCCAATTTACTACTCGTTCTGGTGTTTCTCGTCAGGGCAAGCCTTATTCACTGAATGAGCAGCTTTGTTACGTTGATTTGGGTAATGAATATCCGGTTCTTGTCAAGATTACTCTTGATGAAGGTCAGCCAGCCTATGCGCCTGGTCTGTACACCGTTCATCTGTCCTCTTTCAAAGTTGGTCAGTTCGGTTCCCTTATGATTGACCGTCTGCGCCTCGTTCCGGCTAAGTAACATGGAGCAGGTCGCGGATTTCGACACAATTTATCAGGCGATGATACAAATCTCCGTTGTACTTTGTTTCGCGCTTGGTATAATCGCTGGGGGTCAAAGATGAGTGTTTTAGTGTATTCTTTTGCCTCTTTCGTTTTAGGTTGGTGCCTTCGTAGTGGCATTACGTATTTTACCCGTTTAATGGAAACTTCCTCATGAAAAAGTCTTTAGTCCTCAAAGCCTCTGTAGCCGTTGCTACCCTCGTTCCGATGCTGTCTTTCGCTGCTGAGGGTGACGATCCCGCAAAAGCGGCCTTTAACTCCCTGCAAGCCTCAGCGACCGAATATATCGGTTATGCGTGGGCGATGGTTGTTGTCATTGTCGGCGCAACTATCGGTATCAAGCTGTTTAAGAAATTCACCTCGAAAGCAAGCTGATAAACCGATACAATTAAAGGCTCCTTTTGGAGCCTTTTTTTTGGAGATTTTCAACGTGAAAAAATTATTATTCGCAATTCCTTTAGTTGTTCCTTTCTATTCTCACTCCGCTGAAACTGTTGAAAGTTGTTTAGCAAAATCCCATACAGAAAATTCATTTACTAACGTCTGGAAAGACGACAAAACTTTAGATCGTTACGCTAACTATGAGGGCTGTCTGTGGAATGCTACAGGCGTTGTAGTTTGTACTGGTGACGAAACTCAGTGTTACGGTACATGGGTTCCTATTGGGCTTGCTATCCCTGAAAATGAGGGTGGTGGCTCTGAGGGTGGCGGTTCTGAGGGTGGCGGTTCTGAGGGTGGCGGTACTAAACCTCCTGAGTACGGTGATACACCTATTCCGGGCTATACTTATATCAACCCTCTCGACGGCACTTATCCGCCTGGTACTGAGCAAAACCCCGCTAATCCTAATCCTTCTCTTGAGGAGTCTCAGCCTCTTAATACTTTCATGTTTCAGAATAATAGGTTCCGAAATAGGCAGGGGGCATTAACTGTTTATACGGGCACTGTTACTCAAGGCACTGACCCCGTTAAAACTTATTACCAGTACACTCCTGTATCATCAAAAGCCATGTATGACGCTTACTGGAACGGTAAATTCAGAGACTGCGCTTTCCATTCTGGCTTTAATGAGGATTTATTTGTTTGTGAATATCAAGGCCAATCGTCTGACCTGCCTCAACCTCCTGTCAATGCTGGCGGCGGCTCTGGTGGTGGTTCTGGTGGCGGCTCTGAGGGTGGTGGCTCTGAGGGTGGCGGTTCTGAGGGTGGCGGCTCTGAGGGAGGCGGTTCCGGTGGTGGCTCTGGTTCCGGTGATTTTGATTATGAAAAGATGGCAAACGCTAATAAGGGGGCTATGACCGAAAATGCCGATGAAAACGCGCTACAGTCTGACGCTAAAGGCAAACTTGATTCTGTCGCTACTGATTACGGTGCTGCTATCGATGGTTTCATTGGTGACGTTTCCGGCCTTGCTAATGGTAATGGTGCTACTGGTGATTTTGCTGGCTCTAATTCCCAAATGGCTCAAGTCGGTGACGGTGATAATTCACCTTTAATGAATAATTTCCGTCAATATTTACCTTCCCTCCCTCAATCGGTTGAATGTCGCCCTTTTGTCTTTGGCGCTGGTAAACCATATGAATTTTCTATTGATTGTGACAAAATAAACTTATTCCGTGGTGTCTTTGCGTTTCTTTTATATGTTGCCACCTTTATGTATGTATTTTCTACGTTTGCTAACATACTGCGTAATAAGGAGTCTTAATCATGCCAGTTCTTTTGGGTATTCCGTTATTATTGCGTTTCCTCGGTTTCCTTCTGGTAACTTTGTTCGGCTATCTGCTTACTTTTCTTAAAAAGGGCTTCGGTAAGATAGCTATTGCTATTTCATTGTTTCTTGCTCTTATTATTGGGCTTAACTCAATTCTTGTGGGTTATCTCTCTGATATTAGCGCTCAATTACCCTCTGACTTTGTTCAGGGTGTTCAGTTAATTCTCCCGTCTAATGCGCTTCCCTGTTTTTATGTTATTCTCTCTGTAAAGGCTGCTATTTTCATTTTTGACGTTAAACAAAAAATCGTTTCTTATTTGGATTGGGATAAATAATATGGCTGTTTATTTTGTAACTGGCAAATTAGGCTCTGGAAAGACGCTCGTTAGCGTTGGTAAGATTCAGGATAAAATTGTAGCTGGGTGCAAAATAGCAACTAATCTTGATTTAAGGCTTCAAAACCTCCCGCAAGTCGGGAGGTTCGCTAAAACGCCTCGCGTTCTTAGAATACCGGATAAGCCTTCTATATCTGATTTGCTTGCTATTGGGCGCGGTAATGATTCCTACGATGAAAATAAAAACGGCTTGCTTGTTCTCGATGAGTGCGGTACTTGGTTTAATACCCGTTCTTGGAATGATAAGGAAAGACAGCCGATTATTGATTGGTTTCTACATGCTCGTAAATTAGGATGGGATATTATTTTTCTTGTTCAGGACTTATCTATTGTTGATAAACAGGCGCGTTCTGCATTAGCTGAACATGTTGTTTATTGTCGTCGTCTGGACAGAATTACTTTACCTTTTGTCGGTACTTTATATTCTCTTATTACTGGCTCGAAAATGCCTCTGCCTAAATTACATGTTGGCGTTGTTAAATATGGCGATTCTCAATTAAGCCCTACTGTTGAGCGTTGGCTTTATACTGGTAAGAATTTGTATAACGCATATGATACTAAACAGGCTTTTTCTAGTAATTATGATTCCGGTGTTTATTCTTATTTAACGCCTTATTTATCACACGGTCGGTATTTCAAACCATTAAATTTAGGTCAGAAGATGAAATTAACTAAAATATATTTGAAAAAGTTTTCTCGCGTTCTTTGTCTTGCGATTGGATTTGCATCAGCATTTACATATAGTTATATAACCCAACCTAAGCCGGAGGTTAAAAAGGTAGTCTCTCAGACCTATGATTTTGATAAATTCACTATTGACTCTTCTCAGCGTCTTAATCTAAGCTATCGCTATGTTTTCAAGGATTCTAAGGGAAAATTAATTAATAGCGACGATTTACAGAAGCAAGGTTATTCACTCACATATATTGATTTATGTACTGTTTCCATTAAAAAAGGTAATTCAAATGAAATTGTTAAATGTAATTAATTTTGTTTTCTTGATGTTTGTTTCATCATCTTCTTTTGCTCAGGTAATTGAAATGAATAATTCGCCTCTGCGCGATTTTGTAACTTGGTATTCAAAGCAATCAGGCGAATCCGTTATTGTTTCTCCCGATGTAAAAGGTACTGTTACTGTATATTCATCTGACGTTAAACCTGAAAATCTACGCAATTTCTTTATTTCTGTTTTACGTGCAAATAATTTTGATATGGTAGGTTCTAACCCTTCCATTATTCAGAAGTATAATCCAAACAATCAGGATTATATTGATGAATTGCCATCATCTGATAATCAGGAATATGATGATAATTCCGCTCCTTCTGGTGGTTTCTTTGTTCCGCAAAATGATAATGTTACTCAAACTTTTAAAATTAATAACGTTCGGGCAAAGGATTTAATACGAGTTGTCGAATTGTTTGTAAAGTCTAATACTTCTAAATCCTCAAATGTATTATCTATTGACGGCTCTAATCTATTAGTTGTTAGTGCTCCTAAAGATATTTTAGATAACCTTCCTCAATTCCTTTCAACTGTTGATTTGCCAACTGACCAGATATTGATTGAGGGTTTGATATTTGAGGTTCAGCAAGGTGATGCTTTAGATTTTTCATTTGCTGCTGGCTCTCAGCGTGGCACTGTTGCAGGCGGTGTTAATACTGACCGCCTCACCTCTGTTTTATCTTCTGCTGGTGGTTCGTTCGGTATTTTTAATGGCGATGTTTTAGGGCTATCAGTTCGCGCATTAAAGACTAATAGCCATTCAAAAATATTGTCTGTGCCACGTATTCTTACGCTTTCAGGTCAGAAGGGTTCTATCTCTGTTGGCCAGAATGTCCCTTTTATTACTGGTCGTGTGACTGGTGAATCTGCCAATGTAAATAATCCATTTCAGACGATTGAGCGTCAAAATGTAGGTATTTCCATGAGCGTTTTTCCTGTTGCAATGGCTGGCGGTAATATTGTTCTGGATATTACCAGCAAGGCCGATAGTTTGAGTTCTTCTACTCAGGCAAGTGATGTTATTACTAATCAAAGAAGTATTGCTACAACGGTTAATTTGCGTGATGGACAGACTCTTTTACTCGGTGGCCTCACTGATTATAAAA", + "is_scaffold": true, "domains": [ {"helix": 15, "forward": false, "start": 32, "end": 102, "deletions": [68]}, {"helix": 14, "forward": true, "start": 32, "end": 240, "deletions": [68, 115, 163, 212, 59, 91, 123, 155, 187, 219], "insertions": [[75, 1], [107, 1], [139, 1], [171, 1], [203, 1], [235, 1]]}, @@ -112,8 +113,7 @@ {"helix": 13, "forward": false, "start": 240, "end": 480, "deletions": [259, 307, 355, 403, 451, 267, 299, 331, 363, 395, 427], "insertions": [[251, 1], [283, 1], [315, 1], [347, 1], [379, 1], [411, 1]]}, {"helix": 14, "forward": true, "start": 240, "end": 480, "deletions": [259, 307, 355, 403, 451, 251, 283, 315, 347, 379, 411], "insertions": [[267, 1], [299, 1], [331, 1], [363, 1], [395, 1], [427, 1]]}, {"helix": 15, "forward": false, "start": 102, "end": 480, "deletions": [115, 163, 212, 259, 307, 355, 403, 451]} - ], - "is_scaffold": true + ] }, { "color": "#f74308", diff --git a/examples/proposal/me-square-grid.sc b/examples/proposal/me-square-grid.sc index a95a57f1..8234e284 100644 --- a/examples/proposal/me-square-grid.sc +++ b/examples/proposal/me-square-grid.sc @@ -1,71 +1,23 @@ { - "version": "0.10.1", + "version": "0.13.0", "grid": "square", "helices": [ - { - "max_offset": 512, - "grid_position": [0, 0] - }, - { - "max_offset": 512, - "grid_position": [0, 1] - }, - { - "max_offset": 512, - "grid_position": [0, 2] - }, - { - "max_offset": 512, - "grid_position": [0, 3] - }, - { - "max_offset": 512, - "grid_position": [0, 4] - }, - { - "max_offset": 512, - "grid_position": [0, 5] - }, - { - "max_offset": 512, - "grid_position": [0, 6] - }, - { - "max_offset": 512, - "grid_position": [0, 7] - }, - { - "max_offset": 512, - "grid_position": [0, 8] - }, - { - "max_offset": 512, - "grid_position": [0, 9] - }, - { - "max_offset": 512, - "grid_position": [0, 10] - }, - { - "max_offset": 512, - "grid_position": [0, 11] - }, - { - "max_offset": 512, - "grid_position": [0, 12] - }, - { - "max_offset": 512, - "grid_position": [0, 13] - }, - { - "max_offset": 512, - "grid_position": [0, 14] - }, - { - "max_offset": 512, - "grid_position": [0, 15] - } + {"grid_position": [0, 0], "max_offset": 512}, + {"grid_position": [0, 1], "max_offset": 512}, + {"grid_position": [0, 2], "max_offset": 512}, + {"grid_position": [0, 3], "max_offset": 512}, + {"grid_position": [0, 4], "max_offset": 512}, + {"grid_position": [0, 5], "max_offset": 512}, + {"grid_position": [0, 6], "max_offset": 512}, + {"grid_position": [0, 7], "max_offset": 512}, + {"grid_position": [0, 8], "max_offset": 512}, + {"grid_position": [0, 9], "max_offset": 512}, + {"grid_position": [0, 10], "max_offset": 512}, + {"grid_position": [0, 11], "max_offset": 512}, + {"grid_position": [0, 12], "max_offset": 512}, + {"grid_position": [0, 13], "max_offset": 512}, + {"grid_position": [0, 14], "max_offset": 512}, + {"grid_position": [0, 15], "max_offset": 512} ], "helices_view_order": [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0], "modifications_in_design": { @@ -80,6 +32,7 @@ { "color": "#0066cc", "sequence": "TTCCCTTCCTTTCTCGCCACGTTCGCCGGCTTTCCCCGTCAAGCTCTAAATCGGGGGCTCCCTTTAGGGTTCCGATTTAGTGCTTTACGGCACCTCGACCCCAAAAAACTTGATTTGGGTGATGGTTCACGTAGTGGGCCATCGCCCTGATAGACGGTTTTTCGCCCTTTGACGTTGGAGTCCACGTTCTTTAATAGTGGACTCTTGTTCCAAACTGGAACAACACTCAACCCTATCTCGGGCTATTCTTTTGATTTATAAGGGATTTTGCCGATTTCGGAACCACCATCAAACAGGATTTTCGCCTGCTGGGGCAAACCAGCGTGGACCGCTTGCTGCAACTCTCTCAGGGCCAGGCGGTGAAGGGCAATCAGCTGTTGCCCGTCTCACTGGTGAAAAGAAAAACCACCCTGGCGCCCAATACGCAAACCGCCTCTCCCCGCGCGTTGGCCGATTCATTAATGCAGCTGGCACGACAGGTTTCCCGACTGGAAAGCGGGCAGTGAGCGCAACGCAATTAATGTGAGTTAGCTCACTCATTAGGCACCCCAGGCTTTACACTTTATGCTTCCGGCTCGTATGTTGTGTGGAATTGTGAGCGGATAACAATTTCACACAGGAAACAGCTATGACCATGATTACGAATTCGAGCTCGGTACCCGGGGATCCTCTAGAGTCGACCTGCAGGCATGCAAGCTTGGCACTGGCCGTCGTTTTACAACGTCGTGACTGGGAAAACCCTGGCGTTACCCAACTTAATCGCCTTGCAGCACATCCCCCTTTCGCCAGCTGGCGTAATAGCGAAGAGGCCCGCACCGATCGCCCTTCCCAACAGTTGCGCAGCCTGAATGGCGAATGGCGCTTTGCCTGGTTTCCGGCACCAGAAGCGGTGCCGGAAAGCTGGCTGGAGTGCGATCTTCCTGAGGCCGATACTGTCGTCGTCCCCTCAAACTGGCAGATGCACGGTTACGATGCGCCCATCTACACCAACGTGACCTATCCCATTACGGTCAATCCGCCGTTTGTTCCCACGGAGAATCCGACGGGTTGTTACTCGCTCACATTTAATGTTGATGAAAGCTGGCTACAGGAAGGCCAGACGCGAATTATTTTTGATGGCGTTCCTATTGGTTAAAAAATGAGCTGATTTAACAAAAATTTAATGCGAATTTTAACAAAATATTAACGTTTACAATTTAAATATTTGCTTATACAATCTTCCTGTTTTTGGGGCTTTTCTGATTATCAACCGGGGTACATATGATTGACATGCTAGTTTTACGATTACCGTTCATCGATTCTCTTGTTTGCTCCAGACTCTCAGGCAATGACCTGATAGCCTTTGTAGATCTCTCAAAAATAGCTACCCTCTCCGGCATTAATTTATCAGCTAGAACGGTTGAATATCATATTGATGGTGATTTGACTGTCTCCGGCCTTTCTCACCCTTTTGAATCTTTACCTACACATTACTCAGGCATTGCATTTAAAATATATGAGGGTTCTAAAAATTTTTATCCTTGCGTTGAAATAAAGGCTTCTCCCGCAAAAGTATTACAGGGTCATAATGTTTTTGGTACAACCGATTTAGCTTTATGCTCTGAGGCTTTATTGCTTAATTTTGCTAATTCTTTGCCTTGCCTGTATGATTTATTGGATGTTAATGCTACTACTATTAGTAGAATTGATGCCACCTTTTCAGCTCGCGCCCCAAATGAAAATATAGCTAAACAGGTTATTGACCATTTGCGAAATGTATCTAATGGTCAAACTAAATCTACTCGTTCGCAGAATTGGGAATCAACTGTTATATGGAATGAAACTTCCAGACACCGTACTTTAGTTGCATATTTAAAACATGTTGAGCTACAGCATTATATTCAGCAATTAAGCTCTAAGCCATCCGCAAAAATGACCTCTTATCAAAAGGAGCAATTAAAGGTACTCTCTAATCCTGACCTGTTGGAGTTTGCTTCCGGTCTGGTTCGCTTTGAAGCTCGAATTAAAACGCGATATTTGAAGTCTTTCGGGCTTCCTCTTAATCTTTTTGATGCAATCCGCTTTGCTTCTGACTATAATAGTCAGGGTAAAGACCTGATTTTTGATTTATGGTCATTCTCGTTTTCTGAACTGTTTAAAGCATTTGAGGGGGATTCAATGAATATTTATGACGATTCCGCAGTATTGGACGCTATCCAGTCTAAACATTTTACTATTACCCCCTCTGGCAAAACTTCTTTTGCAAAAGCCTCTCGCTATTTTGGTTTTTATCGTCGTCTGGTAAACGAGGGTTATGATAGTGTTGCTCTTACTATGCCTCGTAATTCCTTTTGGCGTTATGTATCTGCATTAGTTGAATGTGGTATTCCTAAATCTCAACTGATGAATCTTTCTACCTGTAATAATGTTGTTCCGTTAGTTCGTTTTATTAACGTAGATTTTTCTTCCCAACGTCCTGACTGGTATAATGAGCCAGTTCTTAAAATCGCATAAGGTAATTCACAATGATTAAAGTTGAAATTAAACCATCTCAAGCCCAATTTACTACTCGTTCTGGTGTTTCTCGTCAGGGCAAGCCTTATTCACTGAATGAGCAGCTTTGTTACGTTGATTTGGGTAATGAATATCCGGTTCTTGTCAAGATTACTCTTGATGAAGGTCAGCCAGCCTATGCGCCTGGTCTGTACACCGTTCATCTGTCCTCTTTCAAAGTTGGTCAGTTCGGTTCCCTTATGATTGACCGTCTGCGCCTCGTTCCGGCTAAGTAACATGGAGCAGGTCGCGGATTTCGACACAATTTATCAGGCGATGATACAAATCTCCGTTGTACTTTGTTTCGCGCTTGGTATAATCGCTGGGGGTCAAAGATGAGTGTTTTAGTGTATTCTTTTGCCTCTTTCGTTTTAGGTTGGTGCCTTCGTAGTGGCATTACGTATTTTACCCGTTTAATGGAAACTTCCTCATGAAAAAGTCTTTAGTCCTCAAAGCCTCTGTAGCCGTTGCTACCCTCGTTCCGATGCTGTCTTTCGCTGCTGAGGGTGACGATCCCGCAAAAGCGGCCTTTAACTCCCTGCAAGCCTCAGCGACCGAATATATCGGTTATGCGTGGGCGATGGTTGTTGTCATTGTCGGCGCAACTATCGGTATCAAGCTGTTTAAGAAATTCACCTCGAAAGCAAGCTGATAAACCGATACAATTAAAGGCTCCTTTTGGAGCCTTTTTTTTGGAGATTTTCAACGTGAAAAAATTATTATTCGCAATTCCTTTAGTTGTTCCTTTCTATTCTCACTCCGCTGAAACTGTTGAAAGTTGTTTAGCAAAATCCCATACAGAAAATTCATTTACTAACGTCTGGAAAGACGACAAAACTTTAGATCGTTACGCTAACTATGAGGGCTGTCTGTGGAATGCTACAGGCGTTGTAGTTTGTACTGGTGACGAAACTCAGTGTTACGGTACATGGGTTCCTATTGGGCTTGCTATCCCTGAAAATGAGGGTGGTGGCTCTGAGGGTGGCGGTTCTGAGGGTGGCGGTTCTGAGGGTGGCGGTACTAAACCTCCTGAGTACGGTGATACACCTATTCCGGGCTATACTTATATCAACCCTCTCGACGGCACTTATCCGCCTGGTACTGAGCAAAACCCCGCTAATCCTAATCCTTCTCTTGAGGAGTCTCAGCCTCTTAATACTTTCATGTTTCAGAATAATAGGTTCCGAAATAGGCAGGGGGCATTAACTGTTTATACGGGCACTGTTACTCAAGGCACTGACCCCGTTAAAACTTATTACCAGTACACTCCTGTATCATCAAAAGCCATGTATGACGCTTACTGGAACGGTAAATTCAGAGACTGCGCTTTCCATTCTGGCTTTAATGAGGATTTATTTGTTTGTGAATATCAAGGCCAATCGTCTGACCTGCCTCAACCTCCTGTCAATGCTGGCGGCGGCTCTGGTGGTGGTTCTGGTGGCGGCTCTGAGGGTGGTGGCTCTGAGGGTGGCGGTTCTGAGGGTGGCGGCTCTGAGGGAGGCGGTTCCGGTGGTGGCTCTGGTTCCGGTGATTTTGATTATGAAAAGATGGCAAACGCTAATAAGGGGGCTATGACCGAAAATGCCGATGAAAACGCGCTACAGTCTGACGCTAAAGGCAAACTTGATTCTGTCGCTACTGATTACGGTGCTGCTATCGATGGTTTCATTGGTGACGTTTCCGGCCTTGCTAATGGTAATGGTGCTACTGGTGATTTTGCTGGCTCTAATTCCCAAATGGCTCAAGTCGGTGACGGTGATAATTCACCTTTAATGAATAATTTCCGTCAATATTTACCTTCCCTCCCTCAATCGGTTGAATGTCGCCCTTTTGTCTTTGGCGCTGGTAAACCATATGAATTTTCTATTGATTGTGACAAAATAAACTTATTCCGTGGTGTCTTTGCGTTTCTTTTATATGTTGCCACCTTTATGTATGTATTTTCTACGTTTGCTAACATACTGCGTAATAAGGAGTCTTAATCATGCCAGTTCTTTTGGGTATTCCGTTATTATTGCGTTTCCTCGGTTTCCTTCTGGTAACTTTGTTCGGCTATCTGCTTACTTTTCTTAAAAAGGGCTTCGGTAAGATAGCTATTGCTATTTCATTGTTTCTTGCTCTTATTATTGGGCTTAACTCAATTCTTGTGGGTTATCTCTCTGATATTAGCGCTCAATTACCCTCTGACTTTGTTCAGGGTGTTCAGTTAATTCTCCCGTCTAATGCGCTTCCCTGTTTTTATGTTATTCTCTCTGTAAAGGCTGCTATTTTCATTTTTGACGTTAAACAAAAAATCGTTTCTTATTTGGATTGGGATAAATAATATGGCTGTTTATTTTGTAACTGGCAAATTAGGCTCTGGAAAGACGCTCGTTAGCGTTGGTAAGATTCAGGATAAAATTGTAGCTGGGTGCAAAATAGCAACTAATCTTGATTTAAGGCTTCAAAACCTCCCGCAAGTCGGGAGGTTCGCTAAAACGCCTCGCGTTCTTAGAATACCGGATAAGCCTTCTATATCTGATTTGCTTGCTATTGGGCGCGGTAATGATTCCTACGATGAAAATAAAAACGGCTTGCTTGTTCTCGATGAGTGCGGTACTTGGTTTAATACCCGTTCTTGGAATGATAAGGAAAGACAGCCGATTATTGATTGGTTTCTACATGCTCGTAAATTAGGATGGGATATTATTTTTCTTGTTCAGGACTTATCTATTGTTGATAAACAGGCGCGTTCTGCATTAGCTGAACATGTTGTTTATTGTCGTCGTCTGGACAGAATTACTTTACCTTTTGTCGGTACTTTATATTCTCTTATTACTGGCTCGAAAATGCCTCTGCCTAAATTACATGTTGGCGTTGTTAAATATGGCGATTCTCAATTAAGCCCTACTGTTGAGCGTTGGCTTTATACTGGTAAGAATTTGTATAACGCATATGATACTAAACAGGCTTTTTCTAGTAATTATGATTCCGGTGTTTATTCTTATTTAACGCCTTATTTATCACACGGTCGGTATTTCAAACCATTAAATTTAGGTCAGAAGATGAAATTAACTAAAATATATTTGAAAAAGTTTTCTCGCGTTCTTTGTCTTGCGATTGGATTTGCATCAGCATTTACATATAGTTATATAACCCAACCTAAGCCGGAGGTTAAAAAGGTAGTCTCTCAGACCTATGATTTTGATAAATTCACTATTGACTCTTCTCAGCGTCTTAATCTAAGCTATCGCTATGTTTTCAAGGATTCTAAGGGAAAATTAATTAATAGCGACGATTTACAGAAGCAAGGTTATTCACTCACATATATTGATTTATGTACTGTTTCCATTAAAAAAGGTAATTCAAATGAAATTGTTAAATGTAATTAATTTTGTTTTCTTGATGTTTGTTTCATCATCTTCTTTTGCTCAGGTAATTGAAATGAATAATTCGCCTCTGCGCGATTTTGTAACTTGGTATTCAAAGCAATCAGGCGAATCCGTTATTGTTTCTCCCGATGTAAAAGGTACTGTTACTGTATATTCATCTGACGTTAAACCTGAAAATCTACGCAATTTCTTTATTTCTGTTTTACGTGCAAATAATTTTGATATGGTAGGTTCTAACCCTTCCATTATTCAGAAGTATAATCCAAACAATCAGGATTATATTGATGAATTGCCATCATCTGATAATCAGGAATATGATGATAATTCCGCTCCTTCTGGTGGTTTCTTTGTTCCGCAAAATGATAATGTTACTCAAACTTTTAAAATTAATAACGTTCGGGCAAAGGATTTAATACGAGTTGTCGAATTGTTTGTAAAGTCTAATACTTCTAAATCCTCAAATGTATTATCTATTGACGGCTCTAATCTATTAGTTGTTAGTGCTCCTAAAGATATTTTAGATAACCTTCCTCAATTCCTTTCAACTGTTGATTTGCCAACTGACCAGATATTGATTGAGGGTTTGATATTTGAGGTTCAGCAAGGTGATGCTTTAGATTTTTCATTTGCTGCTGGCTCTCAGCGTGGCACTGTTGCAGGCGGTGTTAATACTGACCGCCTCACCTCTGTTTTATCTTCTGCTGGTGGTTCGTTCGGTATTTTTAATGGCGATGTTTTAGGGCTATCAGTTCGCGCATTAAAGACTAATAGCCATTCAAAAATATTGTCTGTGCCACGTATTCTTACGCTTTCAGGTCAGAAGGGTTCTATCTCTGTTGGCCAGAATGTCCCTTTTATTACTGGTCGTGTGACTGGTGAATCTGCCAATGTAAATAATCCATTTCAGACGATTGAGCGTCAAAATGTAGGTATTTCCATGAGCGTTTTTCCTGTTGCAATGGCTGGCGGTAATATTGTTCTGGATATTACCAGCAAGGCCGATAGTTTGAGTTCTTCTACTCAGGCAAGTGATGTTATTACTAATCAAAGAAGTATTGCTACAACGGTTAATTTGCGTGATGGACAGACTCTTTTACTCGGTGGCCTCACTGATTATAAAA", + "is_scaffold": true, "domains": [ {"helix": 15, "forward": false, "start": 32, "end": 102, "deletions": [68]}, {"helix": 14, "forward": true, "start": 32, "end": 240, "deletions": [68, 115, 163, 212, 59, 91, 123, 155, 187, 219], "insertions": [[75, 1], [107, 1], [139, 1], [171, 1], [203, 1], [235, 1]]}, @@ -112,8 +65,7 @@ {"helix": 13, "forward": false, "start": 240, "end": 480, "deletions": [259, 307, 355, 403, 451, 267, 299, 331, 363, 395, 427], "insertions": [[251, 1], [283, 1], [315, 1], [347, 1], [379, 1], [411, 1]]}, {"helix": 14, "forward": true, "start": 240, "end": 480, "deletions": [259, 307, 355, 403, 451, 251, 283, 315, 347, 379, 411], "insertions": [[267, 1], [299, 1], [331, 1], [363, 1], [395, 1], [427, 1]]}, {"helix": 15, "forward": false, "start": 102, "end": 480, "deletions": [115, 163, 212, 259, 307, 355, 403, 451]} - ], - "is_scaffold": true + ] }, { "color": "#f74308", diff --git a/examples/proposal/me.sc b/examples/proposal/me.sc index e7f250fa..e6805361 100644 --- a/examples/proposal/me.sc +++ b/examples/proposal/me.sc @@ -1,70 +1,70 @@ { - "version": "0.10.1", + "version": "0.13.0", "grid": "none", "helices": [ { - "max_offset": 512, - "position": {"x": 0, "y": 0, "z": 0} + "position": {"x": 0, "y": 0, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.0, "z": 2.5} + "position": {"x": 2.5, "y": 0, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.9567085809127245, "z": 4.809698831278217} + "position": {"x": 4.809698831278217, "y": 0.9567085809127245, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 2.7244755338790934, "z": 6.577465784244586} + "position": {"x": 6.577465784244586, "y": 2.7244755338790934, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 5.034174365157311, "z": 7.534174365157311} + "position": {"x": 7.534174365157311, "y": 5.034174365157311, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 7.534174365157311, "z": 7.534174365157311} + "position": {"x": 7.534174365157311, "y": 7.534174365157311, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 9.843873196435528, "z": 6.577465784244587} + "position": {"x": 6.577465784244587, "y": 9.843873196435528, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 11.611640149401897, "z": 4.809698831278218} + "position": {"x": 4.809698831278218, "y": 11.611640149401897, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 12.568348730314622, "z": 2.500000000000001} + "position": {"x": 2.500000000000001, "y": 12.568348730314622, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 12.568348730314622, "z": 8.881784197001252e-16} + "position": {"x": 8.881784197001252e-16, "y": 12.568348730314622, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 11.611640149401897, "z": -2.309698831278216} + "position": {"x": -2.309698831278216, "y": 11.611640149401897, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 9.843873196435528, "z": -4.077465784244586} + "position": {"x": -4.077465784244586, "y": 9.843873196435528, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 7.534174365157312, "z": -5.034174365157312} + "position": {"x": -5.034174365157312, "y": 7.534174365157312, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 5.034174365157312, "z": -5.0341743651573125} + "position": {"x": -5.0341743651573125, "y": 5.034174365157312, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 2.724475533879095, "z": -4.077465784244588} + "position": {"x": -4.077465784244588, "y": 2.724475533879095, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.9567085809127276, "z": -2.309698831278218} + "position": {"x": -2.309698831278218, "y": 0.9567085809127276, "z": 0}, + "max_offset": 512 } ], "helices_view_order": [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0], @@ -80,6 +80,7 @@ { "color": "#0066cc", "sequence": "TTCCCTTCCTTTCTCGCCACGTTCGCCGGCTTTCCCCGTCAAGCTCTAAATCGGGGGCTCCCTTTAGGGTTCCGATTTAGTGCTTTACGGCACCTCGACCCCAAAAAACTTGATTTGGGTGATGGTTCACGTAGTGGGCCATCGCCCTGATAGACGGTTTTTCGCCCTTTGACGTTGGAGTCCACGTTCTTTAATAGTGGACTCTTGTTCCAAACTGGAACAACACTCAACCCTATCTCGGGCTATTCTTTTGATTTATAAGGGATTTTGCCGATTTCGGAACCACCATCAAACAGGATTTTCGCCTGCTGGGGCAAACCAGCGTGGACCGCTTGCTGCAACTCTCTCAGGGCCAGGCGGTGAAGGGCAATCAGCTGTTGCCCGTCTCACTGGTGAAAAGAAAAACCACCCTGGCGCCCAATACGCAAACCGCCTCTCCCCGCGCGTTGGCCGATTCATTAATGCAGCTGGCACGACAGGTTTCCCGACTGGAAAGCGGGCAGTGAGCGCAACGCAATTAATGTGAGTTAGCTCACTCATTAGGCACCCCAGGCTTTACACTTTATGCTTCCGGCTCGTATGTTGTGTGGAATTGTGAGCGGATAACAATTTCACACAGGAAACAGCTATGACCATGATTACGAATTCGAGCTCGGTACCCGGGGATCCTCTAGAGTCGACCTGCAGGCATGCAAGCTTGGCACTGGCCGTCGTTTTACAACGTCGTGACTGGGAAAACCCTGGCGTTACCCAACTTAATCGCCTTGCAGCACATCCCCCTTTCGCCAGCTGGCGTAATAGCGAAGAGGCCCGCACCGATCGCCCTTCCCAACAGTTGCGCAGCCTGAATGGCGAATGGCGCTTTGCCTGGTTTCCGGCACCAGAAGCGGTGCCGGAAAGCTGGCTGGAGTGCGATCTTCCTGAGGCCGATACTGTCGTCGTCCCCTCAAACTGGCAGATGCACGGTTACGATGCGCCCATCTACACCAACGTGACCTATCCCATTACGGTCAATCCGCCGTTTGTTCCCACGGAGAATCCGACGGGTTGTTACTCGCTCACATTTAATGTTGATGAAAGCTGGCTACAGGAAGGCCAGACGCGAATTATTTTTGATGGCGTTCCTATTGGTTAAAAAATGAGCTGATTTAACAAAAATTTAATGCGAATTTTAACAAAATATTAACGTTTACAATTTAAATATTTGCTTATACAATCTTCCTGTTTTTGGGGCTTTTCTGATTATCAACCGGGGTACATATGATTGACATGCTAGTTTTACGATTACCGTTCATCGATTCTCTTGTTTGCTCCAGACTCTCAGGCAATGACCTGATAGCCTTTGTAGATCTCTCAAAAATAGCTACCCTCTCCGGCATTAATTTATCAGCTAGAACGGTTGAATATCATATTGATGGTGATTTGACTGTCTCCGGCCTTTCTCACCCTTTTGAATCTTTACCTACACATTACTCAGGCATTGCATTTAAAATATATGAGGGTTCTAAAAATTTTTATCCTTGCGTTGAAATAAAGGCTTCTCCCGCAAAAGTATTACAGGGTCATAATGTTTTTGGTACAACCGATTTAGCTTTATGCTCTGAGGCTTTATTGCTTAATTTTGCTAATTCTTTGCCTTGCCTGTATGATTTATTGGATGTTAATGCTACTACTATTAGTAGAATTGATGCCACCTTTTCAGCTCGCGCCCCAAATGAAAATATAGCTAAACAGGTTATTGACCATTTGCGAAATGTATCTAATGGTCAAACTAAATCTACTCGTTCGCAGAATTGGGAATCAACTGTTATATGGAATGAAACTTCCAGACACCGTACTTTAGTTGCATATTTAAAACATGTTGAGCTACAGCATTATATTCAGCAATTAAGCTCTAAGCCATCCGCAAAAATGACCTCTTATCAAAAGGAGCAATTAAAGGTACTCTCTAATCCTGACCTGTTGGAGTTTGCTTCCGGTCTGGTTCGCTTTGAAGCTCGAATTAAAACGCGATATTTGAAGTCTTTCGGGCTTCCTCTTAATCTTTTTGATGCAATCCGCTTTGCTTCTGACTATAATAGTCAGGGTAAAGACCTGATTTTTGATTTATGGTCATTCTCGTTTTCTGAACTGTTTAAAGCATTTGAGGGGGATTCAATGAATATTTATGACGATTCCGCAGTATTGGACGCTATCCAGTCTAAACATTTTACTATTACCCCCTCTGGCAAAACTTCTTTTGCAAAAGCCTCTCGCTATTTTGGTTTTTATCGTCGTCTGGTAAACGAGGGTTATGATAGTGTTGCTCTTACTATGCCTCGTAATTCCTTTTGGCGTTATGTATCTGCATTAGTTGAATGTGGTATTCCTAAATCTCAACTGATGAATCTTTCTACCTGTAATAATGTTGTTCCGTTAGTTCGTTTTATTAACGTAGATTTTTCTTCCCAACGTCCTGACTGGTATAATGAGCCAGTTCTTAAAATCGCATAAGGTAATTCACAATGATTAAAGTTGAAATTAAACCATCTCAAGCCCAATTTACTACTCGTTCTGGTGTTTCTCGTCAGGGCAAGCCTTATTCACTGAATGAGCAGCTTTGTTACGTTGATTTGGGTAATGAATATCCGGTTCTTGTCAAGATTACTCTTGATGAAGGTCAGCCAGCCTATGCGCCTGGTCTGTACACCGTTCATCTGTCCTCTTTCAAAGTTGGTCAGTTCGGTTCCCTTATGATTGACCGTCTGCGCCTCGTTCCGGCTAAGTAACATGGAGCAGGTCGCGGATTTCGACACAATTTATCAGGCGATGATACAAATCTCCGTTGTACTTTGTTTCGCGCTTGGTATAATCGCTGGGGGTCAAAGATGAGTGTTTTAGTGTATTCTTTTGCCTCTTTCGTTTTAGGTTGGTGCCTTCGTAGTGGCATTACGTATTTTACCCGTTTAATGGAAACTTCCTCATGAAAAAGTCTTTAGTCCTCAAAGCCTCTGTAGCCGTTGCTACCCTCGTTCCGATGCTGTCTTTCGCTGCTGAGGGTGACGATCCCGCAAAAGCGGCCTTTAACTCCCTGCAAGCCTCAGCGACCGAATATATCGGTTATGCGTGGGCGATGGTTGTTGTCATTGTCGGCGCAACTATCGGTATCAAGCTGTTTAAGAAATTCACCTCGAAAGCAAGCTGATAAACCGATACAATTAAAGGCTCCTTTTGGAGCCTTTTTTTTGGAGATTTTCAACGTGAAAAAATTATTATTCGCAATTCCTTTAGTTGTTCCTTTCTATTCTCACTCCGCTGAAACTGTTGAAAGTTGTTTAGCAAAATCCCATACAGAAAATTCATTTACTAACGTCTGGAAAGACGACAAAACTTTAGATCGTTACGCTAACTATGAGGGCTGTCTGTGGAATGCTACAGGCGTTGTAGTTTGTACTGGTGACGAAACTCAGTGTTACGGTACATGGGTTCCTATTGGGCTTGCTATCCCTGAAAATGAGGGTGGTGGCTCTGAGGGTGGCGGTTCTGAGGGTGGCGGTTCTGAGGGTGGCGGTACTAAACCTCCTGAGTACGGTGATACACCTATTCCGGGCTATACTTATATCAACCCTCTCGACGGCACTTATCCGCCTGGTACTGAGCAAAACCCCGCTAATCCTAATCCTTCTCTTGAGGAGTCTCAGCCTCTTAATACTTTCATGTTTCAGAATAATAGGTTCCGAAATAGGCAGGGGGCATTAACTGTTTATACGGGCACTGTTACTCAAGGCACTGACCCCGTTAAAACTTATTACCAGTACACTCCTGTATCATCAAAAGCCATGTATGACGCTTACTGGAACGGTAAATTCAGAGACTGCGCTTTCCATTCTGGCTTTAATGAGGATTTATTTGTTTGTGAATATCAAGGCCAATCGTCTGACCTGCCTCAACCTCCTGTCAATGCTGGCGGCGGCTCTGGTGGTGGTTCTGGTGGCGGCTCTGAGGGTGGTGGCTCTGAGGGTGGCGGTTCTGAGGGTGGCGGCTCTGAGGGAGGCGGTTCCGGTGGTGGCTCTGGTTCCGGTGATTTTGATTATGAAAAGATGGCAAACGCTAATAAGGGGGCTATGACCGAAAATGCCGATGAAAACGCGCTACAGTCTGACGCTAAAGGCAAACTTGATTCTGTCGCTACTGATTACGGTGCTGCTATCGATGGTTTCATTGGTGACGTTTCCGGCCTTGCTAATGGTAATGGTGCTACTGGTGATTTTGCTGGCTCTAATTCCCAAATGGCTCAAGTCGGTGACGGTGATAATTCACCTTTAATGAATAATTTCCGTCAATATTTACCTTCCCTCCCTCAATCGGTTGAATGTCGCCCTTTTGTCTTTGGCGCTGGTAAACCATATGAATTTTCTATTGATTGTGACAAAATAAACTTATTCCGTGGTGTCTTTGCGTTTCTTTTATATGTTGCCACCTTTATGTATGTATTTTCTACGTTTGCTAACATACTGCGTAATAAGGAGTCTTAATCATGCCAGTTCTTTTGGGTATTCCGTTATTATTGCGTTTCCTCGGTTTCCTTCTGGTAACTTTGTTCGGCTATCTGCTTACTTTTCTTAAAAAGGGCTTCGGTAAGATAGCTATTGCTATTTCATTGTTTCTTGCTCTTATTATTGGGCTTAACTCAATTCTTGTGGGTTATCTCTCTGATATTAGCGCTCAATTACCCTCTGACTTTGTTCAGGGTGTTCAGTTAATTCTCCCGTCTAATGCGCTTCCCTGTTTTTATGTTATTCTCTCTGTAAAGGCTGCTATTTTCATTTTTGACGTTAAACAAAAAATCGTTTCTTATTTGGATTGGGATAAATAATATGGCTGTTTATTTTGTAACTGGCAAATTAGGCTCTGGAAAGACGCTCGTTAGCGTTGGTAAGATTCAGGATAAAATTGTAGCTGGGTGCAAAATAGCAACTAATCTTGATTTAAGGCTTCAAAACCTCCCGCAAGTCGGGAGGTTCGCTAAAACGCCTCGCGTTCTTAGAATACCGGATAAGCCTTCTATATCTGATTTGCTTGCTATTGGGCGCGGTAATGATTCCTACGATGAAAATAAAAACGGCTTGCTTGTTCTCGATGAGTGCGGTACTTGGTTTAATACCCGTTCTTGGAATGATAAGGAAAGACAGCCGATTATTGATTGGTTTCTACATGCTCGTAAATTAGGATGGGATATTATTTTTCTTGTTCAGGACTTATCTATTGTTGATAAACAGGCGCGTTCTGCATTAGCTGAACATGTTGTTTATTGTCGTCGTCTGGACAGAATTACTTTACCTTTTGTCGGTACTTTATATTCTCTTATTACTGGCTCGAAAATGCCTCTGCCTAAATTACATGTTGGCGTTGTTAAATATGGCGATTCTCAATTAAGCCCTACTGTTGAGCGTTGGCTTTATACTGGTAAGAATTTGTATAACGCATATGATACTAAACAGGCTTTTTCTAGTAATTATGATTCCGGTGTTTATTCTTATTTAACGCCTTATTTATCACACGGTCGGTATTTCAAACCATTAAATTTAGGTCAGAAGATGAAATTAACTAAAATATATTTGAAAAAGTTTTCTCGCGTTCTTTGTCTTGCGATTGGATTTGCATCAGCATTTACATATAGTTATATAACCCAACCTAAGCCGGAGGTTAAAAAGGTAGTCTCTCAGACCTATGATTTTGATAAATTCACTATTGACTCTTCTCAGCGTCTTAATCTAAGCTATCGCTATGTTTTCAAGGATTCTAAGGGAAAATTAATTAATAGCGACGATTTACAGAAGCAAGGTTATTCACTCACATATATTGATTTATGTACTGTTTCCATTAAAAAAGGTAATTCAAATGAAATTGTTAAATGTAATTAATTTTGTTTTCTTGATGTTTGTTTCATCATCTTCTTTTGCTCAGGTAATTGAAATGAATAATTCGCCTCTGCGCGATTTTGTAACTTGGTATTCAAAGCAATCAGGCGAATCCGTTATTGTTTCTCCCGATGTAAAAGGTACTGTTACTGTATATTCATCTGACGTTAAACCTGAAAATCTACGCAATTTCTTTATTTCTGTTTTACGTGCAAATAATTTTGATATGGTAGGTTCTAACCCTTCCATTATTCAGAAGTATAATCCAAACAATCAGGATTATATTGATGAATTGCCATCATCTGATAATCAGGAATATGATGATAATTCCGCTCCTTCTGGTGGTTTCTTTGTTCCGCAAAATGATAATGTTACTCAAACTTTTAAAATTAATAACGTTCGGGCAAAGGATTTAATACGAGTTGTCGAATTGTTTGTAAAGTCTAATACTTCTAAATCCTCAAATGTATTATCTATTGACGGCTCTAATCTATTAGTTGTTAGTGCTCCTAAAGATATTTTAGATAACCTTCCTCAATTCCTTTCAACTGTTGATTTGCCAACTGACCAGATATTGATTGAGGGTTTGATATTTGAGGTTCAGCAAGGTGATGCTTTAGATTTTTCATTTGCTGCTGGCTCTCAGCGTGGCACTGTTGCAGGCGGTGTTAATACTGACCGCCTCACCTCTGTTTTATCTTCTGCTGGTGGTTCGTTCGGTATTTTTAATGGCGATGTTTTAGGGCTATCAGTTCGCGCATTAAAGACTAATAGCCATTCAAAAATATTGTCTGTGCCACGTATTCTTACGCTTTCAGGTCAGAAGGGTTCTATCTCTGTTGGCCAGAATGTCCCTTTTATTACTGGTCGTGTGACTGGTGAATCTGCCAATGTAAATAATCCATTTCAGACGATTGAGCGTCAAAATGTAGGTATTTCCATGAGCGTTTTTCCTGTTGCAATGGCTGGCGGTAATATTGTTCTGGATATTACCAGCAAGGCCGATAGTTTGAGTTCTTCTACTCAGGCAAGTGATGTTATTACTAATCAAAGAAGTATTGCTACAACGGTTAATTTGCGTGATGGACAGACTCTTTTACTCGGTGGCCTCACTGATTATAAAA", + "is_scaffold": true, "domains": [ {"helix": 15, "forward": false, "start": 32, "end": 102, "deletions": [68]}, {"helix": 14, "forward": true, "start": 32, "end": 240, "deletions": [68, 115, 163, 212, 59, 91, 123, 155, 187, 219], "insertions": [[75, 1], [107, 1], [139, 1], [171, 1], [203, 1], [235, 1]]}, @@ -112,8 +113,7 @@ {"helix": 13, "forward": false, "start": 240, "end": 480, "deletions": [259, 307, 355, 403, 451, 267, 299, 331, 363, 395, 427], "insertions": [[251, 1], [283, 1], [315, 1], [347, 1], [379, 1], [411, 1]]}, {"helix": 14, "forward": true, "start": 240, "end": 480, "deletions": [259, 307, 355, 403, 451, 251, 283, 315, 347, 379, 411], "insertions": [[267, 1], [299, 1], [331, 1], [363, 1], [395, 1], [427, 1]]}, {"helix": 15, "forward": false, "start": 102, "end": 480, "deletions": [115, 163, 212, 259, 307, 355, 403, 451]} - ], - "is_scaffold": true + ] }, { "color": "#f74308", diff --git a/examples/proposal/will.sc b/examples/proposal/will.sc index 573ebaec..bd2ea8b6 100644 --- a/examples/proposal/will.sc +++ b/examples/proposal/will.sc @@ -1,70 +1,70 @@ { - "version": "0.10.1", + "version": "0.13.0", "grid": "none", "helices": [ { - "max_offset": 512, - "position": {"x": 0, "y": 0, "z": 0} + "position": {"x": 0, "y": 0, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.0, "z": 2.5} + "position": {"x": 2.5, "y": 0, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.9567085809127245, "z": 4.809698831278217} + "position": {"x": 4.809698831278217, "y": 0.9567085809127245, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 2.7244755338790934, "z": 6.577465784244586} + "position": {"x": 6.577465784244586, "y": 2.7244755338790934, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 5.034174365157311, "z": 7.534174365157311} + "position": {"x": 7.534174365157311, "y": 5.034174365157311, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 7.534174365157311, "z": 7.534174365157311} + "position": {"x": 7.534174365157311, "y": 7.534174365157311, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 9.843873196435528, "z": 6.577465784244587} + "position": {"x": 6.577465784244587, "y": 9.843873196435528, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 11.611640149401897, "z": 4.809698831278218} + "position": {"x": 4.809698831278218, "y": 11.611640149401897, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 12.568348730314622, "z": 2.500000000000001} + "position": {"x": 2.500000000000001, "y": 12.568348730314622, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 12.568348730314622, "z": 8.881784197001252e-16} + "position": {"x": 8.881784197001252e-16, "y": 12.568348730314622, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 11.611640149401897, "z": -2.309698831278216} + "position": {"x": -2.309698831278216, "y": 11.611640149401897, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 9.843873196435528, "z": -4.077465784244586} + "position": {"x": -4.077465784244586, "y": 9.843873196435528, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 7.534174365157312, "z": -5.034174365157312} + "position": {"x": -5.034174365157312, "y": 7.534174365157312, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 5.034174365157312, "z": -5.0341743651573125} + "position": {"x": -5.0341743651573125, "y": 5.034174365157312, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 2.724475533879095, "z": -4.077465784244588} + "position": {"x": -4.077465784244588, "y": 2.724475533879095, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.9567085809127276, "z": -2.309698831278218} + "position": {"x": -2.309698831278218, "y": 0.9567085809127276, "z": 0}, + "max_offset": 512 } ], "helices_view_order": [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0], @@ -80,6 +80,7 @@ { "color": "#0066cc", "sequence": "TTCCCTTCCTTTCTCGCCACGTTCGCCGGCTTTCCCCGTCAAGCTCTAAATCGGGGGCTCCCTTTAGGGTTCCGATTTAGTGCTTTACGGCACCTCGACCCCAAAAAACTTGATTTGGGTGATGGTTCACGTAGTGGGCCATCGCCCTGATAGACGGTTTTTCGCCCTTTGACGTTGGAGTCCACGTTCTTTAATAGTGGACTCTTGTTCCAAACTGGAACAACACTCAACCCTATCTCGGGCTATTCTTTTGATTTATAAGGGATTTTGCCGATTTCGGAACCACCATCAAACAGGATTTTCGCCTGCTGGGGCAAACCAGCGTGGACCGCTTGCTGCAACTCTCTCAGGGCCAGGCGGTGAAGGGCAATCAGCTGTTGCCCGTCTCACTGGTGAAAAGAAAAACCACCCTGGCGCCCAATACGCAAACCGCCTCTCCCCGCGCGTTGGCCGATTCATTAATGCAGCTGGCACGACAGGTTTCCCGACTGGAAAGCGGGCAGTGAGCGCAACGCAATTAATGTGAGTTAGCTCACTCATTAGGCACCCCAGGCTTTACACTTTATGCTTCCGGCTCGTATGTTGTGTGGAATTGTGAGCGGATAACAATTTCACACAGGAAACAGCTATGACCATGATTACGAATTCGAGCTCGGTACCCGGGGATCCTCTAGAGTCGACCTGCAGGCATGCAAGCTTGGCACTGGCCGTCGTTTTACAACGTCGTGACTGGGAAAACCCTGGCGTTACCCAACTTAATCGCCTTGCAGCACATCCCCCTTTCGCCAGCTGGCGTAATAGCGAAGAGGCCCGCACCGATCGCCCTTCCCAACAGTTGCGCAGCCTGAATGGCGAATGGCGCTTTGCCTGGTTTCCGGCACCAGAAGCGGTGCCGGAAAGCTGGCTGGAGTGCGATCTTCCTGAGGCCGATACTGTCGTCGTCCCCTCAAACTGGCAGATGCACGGTTACGATGCGCCCATCTACACCAACGTGACCTATCCCATTACGGTCAATCCGCCGTTTGTTCCCACGGAGAATCCGACGGGTTGTTACTCGCTCACATTTAATGTTGATGAAAGCTGGCTACAGGAAGGCCAGACGCGAATTATTTTTGATGGCGTTCCTATTGGTTAAAAAATGAGCTGATTTAACAAAAATTTAATGCGAATTTTAACAAAATATTAACGTTTACAATTTAAATATTTGCTTATACAATCTTCCTGTTTTTGGGGCTTTTCTGATTATCAACCGGGGTACATATGATTGACATGCTAGTTTTACGATTACCGTTCATCGATTCTCTTGTTTGCTCCAGACTCTCAGGCAATGACCTGATAGCCTTTGTAGATCTCTCAAAAATAGCTACCCTCTCCGGCATTAATTTATCAGCTAGAACGGTTGAATATCATATTGATGGTGATTTGACTGTCTCCGGCCTTTCTCACCCTTTTGAATCTTTACCTACACATTACTCAGGCATTGCATTTAAAATATATGAGGGTTCTAAAAATTTTTATCCTTGCGTTGAAATAAAGGCTTCTCCCGCAAAAGTATTACAGGGTCATAATGTTTTTGGTACAACCGATTTAGCTTTATGCTCTGAGGCTTTATTGCTTAATTTTGCTAATTCTTTGCCTTGCCTGTATGATTTATTGGATGTTAATGCTACTACTATTAGTAGAATTGATGCCACCTTTTCAGCTCGCGCCCCAAATGAAAATATAGCTAAACAGGTTATTGACCATTTGCGAAATGTATCTAATGGTCAAACTAAATCTACTCGTTCGCAGAATTGGGAATCAACTGTTATATGGAATGAAACTTCCAGACACCGTACTTTAGTTGCATATTTAAAACATGTTGAGCTACAGCATTATATTCAGCAATTAAGCTCTAAGCCATCCGCAAAAATGACCTCTTATCAAAAGGAGCAATTAAAGGTACTCTCTAATCCTGACCTGTTGGAGTTTGCTTCCGGTCTGGTTCGCTTTGAAGCTCGAATTAAAACGCGATATTTGAAGTCTTTCGGGCTTCCTCTTAATCTTTTTGATGCAATCCGCTTTGCTTCTGACTATAATAGTCAGGGTAAAGACCTGATTTTTGATTTATGGTCATTCTCGTTTTCTGAACTGTTTAAAGCATTTGAGGGGGATTCAATGAATATTTATGACGATTCCGCAGTATTGGACGCTATCCAGTCTAAACATTTTACTATTACCCCCTCTGGCAAAACTTCTTTTGCAAAAGCCTCTCGCTATTTTGGTTTTTATCGTCGTCTGGTAAACGAGGGTTATGATAGTGTTGCTCTTACTATGCCTCGTAATTCCTTTTGGCGTTATGTATCTGCATTAGTTGAATGTGGTATTCCTAAATCTCAACTGATGAATCTTTCTACCTGTAATAATGTTGTTCCGTTAGTTCGTTTTATTAACGTAGATTTTTCTTCCCAACGTCCTGACTGGTATAATGAGCCAGTTCTTAAAATCGCATAAGGTAATTCACAATGATTAAAGTTGAAATTAAACCATCTCAAGCCCAATTTACTACTCGTTCTGGTGTTTCTCGTCAGGGCAAGCCTTATTCACTGAATGAGCAGCTTTGTTACGTTGATTTGGGTAATGAATATCCGGTTCTTGTCAAGATTACTCTTGATGAAGGTCAGCCAGCCTATGCGCCTGGTCTGTACACCGTTCATCTGTCCTCTTTCAAAGTTGGTCAGTTCGGTTCCCTTATGATTGACCGTCTGCGCCTCGTTCCGGCTAAGTAACATGGAGCAGGTCGCGGATTTCGACACAATTTATCAGGCGATGATACAAATCTCCGTTGTACTTTGTTTCGCGCTTGGTATAATCGCTGGGGGTCAAAGATGAGTGTTTTAGTGTATTCTTTTGCCTCTTTCGTTTTAGGTTGGTGCCTTCGTAGTGGCATTACGTATTTTACCCGTTTAATGGAAACTTCCTCATGAAAAAGTCTTTAGTCCTCAAAGCCTCTGTAGCCGTTGCTACCCTCGTTCCGATGCTGTCTTTCGCTGCTGAGGGTGACGATCCCGCAAAAGCGGCCTTTAACTCCCTGCAAGCCTCAGCGACCGAATATATCGGTTATGCGTGGGCGATGGTTGTTGTCATTGTCGGCGCAACTATCGGTATCAAGCTGTTTAAGAAATTCACCTCGAAAGCAAGCTGATAAACCGATACAATTAAAGGCTCCTTTTGGAGCCTTTTTTTTGGAGATTTTCAACGTGAAAAAATTATTATTCGCAATTCCTTTAGTTGTTCCTTTCTATTCTCACTCCGCTGAAACTGTTGAAAGTTGTTTAGCAAAATCCCATACAGAAAATTCATTTACTAACGTCTGGAAAGACGACAAAACTTTAGATCGTTACGCTAACTATGAGGGCTGTCTGTGGAATGCTACAGGCGTTGTAGTTTGTACTGGTGACGAAACTCAGTGTTACGGTACATGGGTTCCTATTGGGCTTGCTATCCCTGAAAATGAGGGTGGTGGCTCTGAGGGTGGCGGTTCTGAGGGTGGCGGTTCTGAGGGTGGCGGTACTAAACCTCCTGAGTACGGTGATACACCTATTCCGGGCTATACTTATATCAACCCTCTCGACGGCACTTATCCGCCTGGTACTGAGCAAAACCCCGCTAATCCTAATCCTTCTCTTGAGGAGTCTCAGCCTCTTAATACTTTCATGTTTCAGAATAATAGGTTCCGAAATAGGCAGGGGGCATTAACTGTTTATACGGGCACTGTTACTCAAGGCACTGACCCCGTTAAAACTTATTACCAGTACACTCCTGTATCATCAAAAGCCATGTATGACGCTTACTGGAACGGTAAATTCAGAGACTGCGCTTTCCATTCTGGCTTTAATGAGGATTTATTTGTTTGTGAATATCAAGGCCAATCGTCTGACCTGCCTCAACCTCCTGTCAATGCTGGCGGCGGCTCTGGTGGTGGTTCTGGTGGCGGCTCTGAGGGTGGTGGCTCTGAGGGTGGCGGTTCTGAGGGTGGCGGCTCTGAGGGAGGCGGTTCCGGTGGTGGCTCTGGTTCCGGTGATTTTGATTATGAAAAGATGGCAAACGCTAATAAGGGGGCTATGACCGAAAATGCCGATGAAAACGCGCTACAGTCTGACGCTAAAGGCAAACTTGATTCTGTCGCTACTGATTACGGTGCTGCTATCGATGGTTTCATTGGTGACGTTTCCGGCCTTGCTAATGGTAATGGTGCTACTGGTGATTTTGCTGGCTCTAATTCCCAAATGGCTCAAGTCGGTGACGGTGATAATTCACCTTTAATGAATAATTTCCGTCAATATTTACCTTCCCTCCCTCAATCGGTTGAATGTCGCCCTTTTGTCTTTGGCGCTGGTAAACCATATGAATTTTCTATTGATTGTGACAAAATAAACTTATTCCGTGGTGTCTTTGCGTTTCTTTTATATGTTGCCACCTTTATGTATGTATTTTCTACGTTTGCTAACATACTGCGTAATAAGGAGTCTTAATCATGCCAGTTCTTTTGGGTATTCCGTTATTATTGCGTTTCCTCGGTTTCCTTCTGGTAACTTTGTTCGGCTATCTGCTTACTTTTCTTAAAAAGGGCTTCGGTAAGATAGCTATTGCTATTTCATTGTTTCTTGCTCTTATTATTGGGCTTAACTCAATTCTTGTGGGTTATCTCTCTGATATTAGCGCTCAATTACCCTCTGACTTTGTTCAGGGTGTTCAGTTAATTCTCCCGTCTAATGCGCTTCCCTGTTTTTATGTTATTCTCTCTGTAAAGGCTGCTATTTTCATTTTTGACGTTAAACAAAAAATCGTTTCTTATTTGGATTGGGATAAATAATATGGCTGTTTATTTTGTAACTGGCAAATTAGGCTCTGGAAAGACGCTCGTTAGCGTTGGTAAGATTCAGGATAAAATTGTAGCTGGGTGCAAAATAGCAACTAATCTTGATTTAAGGCTTCAAAACCTCCCGCAAGTCGGGAGGTTCGCTAAAACGCCTCGCGTTCTTAGAATACCGGATAAGCCTTCTATATCTGATTTGCTTGCTATTGGGCGCGGTAATGATTCCTACGATGAAAATAAAAACGGCTTGCTTGTTCTCGATGAGTGCGGTACTTGGTTTAATACCCGTTCTTGGAATGATAAGGAAAGACAGCCGATTATTGATTGGTTTCTACATGCTCGTAAATTAGGATGGGATATTATTTTTCTTGTTCAGGACTTATCTATTGTTGATAAACAGGCGCGTTCTGCATTAGCTGAACATGTTGTTTATTGTCGTCGTCTGGACAGAATTACTTTACCTTTTGTCGGTACTTTATATTCTCTTATTACTGGCTCGAAAATGCCTCTGCCTAAATTACATGTTGGCGTTGTTAAATATGGCGATTCTCAATTAAGCCCTACTGTTGAGCGTTGGCTTTATACTGGTAAGAATTTGTATAACGCATATGATACTAAACAGGCTTTTTCTAGTAATTATGATTCCGGTGTTTATTCTTATTTAACGCCTTATTTATCACACGGTCGGTATTTCAAACCATTAAATTTAGGTCAGAAGATGAAATTAACTAAAATATATTTGAAAAAGTTTTCTCGCGTTCTTTGTCTTGCGATTGGATTTGCATCAGCATTTACATATAGTTATATAACCCAACCTAAGCCGGAGGTTAAAAAGGTAGTCTCTCAGACCTATGATTTTGATAAATTCACTATTGACTCTTCTCAGCGTCTTAATCTAAGCTATCGCTATGTTTTCAAGGATTCTAAGGGAAAATTAATTAATAGCGACGATTTACAGAAGCAAGGTTATTCACTCACATATATTGATTTATGTACTGTTTCCATTAAAAAAGGTAATTCAAATGAAATTGTTAAATGTAATTAATTTTGTTTTCTTGATGTTTGTTTCATCATCTTCTTTTGCTCAGGTAATTGAAATGAATAATTCGCCTCTGCGCGATTTTGTAACTTGGTATTCAAAGCAATCAGGCGAATCCGTTATTGTTTCTCCCGATGTAAAAGGTACTGTTACTGTATATTCATCTGACGTTAAACCTGAAAATCTACGCAATTTCTTTATTTCTGTTTTACGTGCAAATAATTTTGATATGGTAGGTTCTAACCCTTCCATTATTCAGAAGTATAATCCAAACAATCAGGATTATATTGATGAATTGCCATCATCTGATAATCAGGAATATGATGATAATTCCGCTCCTTCTGGTGGTTTCTTTGTTCCGCAAAATGATAATGTTACTCAAACTTTTAAAATTAATAACGTTCGGGCAAAGGATTTAATACGAGTTGTCGAATTGTTTGTAAAGTCTAATACTTCTAAATCCTCAAATGTATTATCTATTGACGGCTCTAATCTATTAGTTGTTAGTGCTCCTAAAGATATTTTAGATAACCTTCCTCAATTCCTTTCAACTGTTGATTTGCCAACTGACCAGATATTGATTGAGGGTTTGATATTTGAGGTTCAGCAAGGTGATGCTTTAGATTTTTCATTTGCTGCTGGCTCTCAGCGTGGCACTGTTGCAGGCGGTGTTAATACTGACCGCCTCACCTCTGTTTTATCTTCTGCTGGTGGTTCGTTCGGTATTTTTAATGGCGATGTTTTAGGGCTATCAGTTCGCGCATTAAAGACTAATAGCCATTCAAAAATATTGTCTGTGCCACGTATTCTTACGCTTTCAGGTCAGAAGGGTTCTATCTCTGTTGGCCAGAATGTCCCTTTTATTACTGGTCGTGTGACTGGTGAATCTGCCAATGTAAATAATCCATTTCAGACGATTGAGCGTCAAAATGTAGGTATTTCCATGAGCGTTTTTCCTGTTGCAATGGCTGGCGGTAATATTGTTCTGGATATTACCAGCAAGGCCGATAGTTTGAGTTCTTCTACTCAGGCAAGTGATGTTATTACTAATCAAAGAAGTATTGCTACAACGGTTAATTTGCGTGATGGACAGACTCTTTTACTCGGTGGCCTCACTGATTATAAAA", + "is_scaffold": true, "domains": [ {"helix": 15, "forward": false, "start": 32, "end": 102, "deletions": [68]}, {"helix": 14, "forward": true, "start": 32, "end": 240, "deletions": [68, 115, 163, 212, 59, 91, 123, 155, 187, 219], "insertions": [[75, 1], [107, 1], [139, 1], [171, 1], [203, 1], [235, 1]]}, @@ -112,8 +113,7 @@ {"helix": 13, "forward": false, "start": 240, "end": 480, "deletions": [259, 307, 355, 403, 451, 267, 299, 331, 363, 395, 427], "insertions": [[251, 1], [283, 1], [315, 1], [347, 1], [379, 1], [411, 1]]}, {"helix": 14, "forward": true, "start": 240, "end": 480, "deletions": [259, 307, 355, 403, 451, 251, 283, 315, 347, 379, 411], "insertions": [[267, 1], [299, 1], [331, 1], [363, 1], [395, 1], [427, 1]]}, {"helix": 15, "forward": false, "start": 102, "end": 480, "deletions": [115, 163, 212, 259, 307, 355, 403, 451]} - ], - "is_scaffold": true + ] }, { "color": "#f74308", diff --git a/examples/proposal/yes.sc b/examples/proposal/yes.sc index 4f5a3a17..a2fa2525 100644 --- a/examples/proposal/yes.sc +++ b/examples/proposal/yes.sc @@ -1,70 +1,70 @@ { - "version": "0.10.1", + "version": "0.13.0", "grid": "none", "helices": [ { - "max_offset": 512, - "position": {"x": 0, "y": 0, "z": 0} + "position": {"x": 0, "y": 0, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.0, "z": 2.5} + "position": {"x": 2.5, "y": 0, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.9567085809127245, "z": 4.809698831278217} + "position": {"x": 4.809698831278217, "y": 0.9567085809127245, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 2.7244755338790934, "z": 6.577465784244586} + "position": {"x": 6.577465784244586, "y": 2.7244755338790934, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 5.034174365157311, "z": 7.534174365157311} + "position": {"x": 7.534174365157311, "y": 5.034174365157311, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 7.534174365157311, "z": 7.534174365157311} + "position": {"x": 7.534174365157311, "y": 7.534174365157311, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 9.843873196435528, "z": 6.577465784244587} + "position": {"x": 6.577465784244587, "y": 9.843873196435528, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 11.611640149401897, "z": 4.809698831278218} + "position": {"x": 4.809698831278218, "y": 11.611640149401897, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 12.568348730314622, "z": 2.500000000000001} + "position": {"x": 2.500000000000001, "y": 12.568348730314622, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 12.568348730314622, "z": 8.881784197001252e-16} + "position": {"x": 8.881784197001252e-16, "y": 12.568348730314622, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 11.611640149401897, "z": -2.309698831278216} + "position": {"x": -2.309698831278216, "y": 11.611640149401897, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 9.843873196435528, "z": -4.077465784244586} + "position": {"x": -4.077465784244586, "y": 9.843873196435528, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 7.534174365157312, "z": -5.034174365157312} + "position": {"x": -5.034174365157312, "y": 7.534174365157312, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 5.034174365157312, "z": -5.0341743651573125} + "position": {"x": -5.0341743651573125, "y": 5.034174365157312, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 2.724475533879095, "z": -4.077465784244588} + "position": {"x": -4.077465784244588, "y": 2.724475533879095, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.9567085809127276, "z": -2.309698831278218} + "position": {"x": -2.309698831278218, "y": 0.9567085809127276, "z": 0}, + "max_offset": 512 } ], "helices_view_order": [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0], @@ -80,6 +80,7 @@ { "color": "#0066cc", "sequence": "TTCCCTTCCTTTCTCGCCACGTTCGCCGGCTTTCCCCGTCAAGCTCTAAATCGGGGGCTCCCTTTAGGGTTCCGATTTAGTGCTTTACGGCACCTCGACCCCAAAAAACTTGATTTGGGTGATGGTTCACGTAGTGGGCCATCGCCCTGATAGACGGTTTTTCGCCCTTTGACGTTGGAGTCCACGTTCTTTAATAGTGGACTCTTGTTCCAAACTGGAACAACACTCAACCCTATCTCGGGCTATTCTTTTGATTTATAAGGGATTTTGCCGATTTCGGAACCACCATCAAACAGGATTTTCGCCTGCTGGGGCAAACCAGCGTGGACCGCTTGCTGCAACTCTCTCAGGGCCAGGCGGTGAAGGGCAATCAGCTGTTGCCCGTCTCACTGGTGAAAAGAAAAACCACCCTGGCGCCCAATACGCAAACCGCCTCTCCCCGCGCGTTGGCCGATTCATTAATGCAGCTGGCACGACAGGTTTCCCGACTGGAAAGCGGGCAGTGAGCGCAACGCAATTAATGTGAGTTAGCTCACTCATTAGGCACCCCAGGCTTTACACTTTATGCTTCCGGCTCGTATGTTGTGTGGAATTGTGAGCGGATAACAATTTCACACAGGAAACAGCTATGACCATGATTACGAATTCGAGCTCGGTACCCGGGGATCCTCTAGAGTCGACCTGCAGGCATGCAAGCTTGGCACTGGCCGTCGTTTTACAACGTCGTGACTGGGAAAACCCTGGCGTTACCCAACTTAATCGCCTTGCAGCACATCCCCCTTTCGCCAGCTGGCGTAATAGCGAAGAGGCCCGCACCGATCGCCCTTCCCAACAGTTGCGCAGCCTGAATGGCGAATGGCGCTTTGCCTGGTTTCCGGCACCAGAAGCGGTGCCGGAAAGCTGGCTGGAGTGCGATCTTCCTGAGGCCGATACTGTCGTCGTCCCCTCAAACTGGCAGATGCACGGTTACGATGCGCCCATCTACACCAACGTGACCTATCCCATTACGGTCAATCCGCCGTTTGTTCCCACGGAGAATCCGACGGGTTGTTACTCGCTCACATTTAATGTTGATGAAAGCTGGCTACAGGAAGGCCAGACGCGAATTATTTTTGATGGCGTTCCTATTGGTTAAAAAATGAGCTGATTTAACAAAAATTTAATGCGAATTTTAACAAAATATTAACGTTTACAATTTAAATATTTGCTTATACAATCTTCCTGTTTTTGGGGCTTTTCTGATTATCAACCGGGGTACATATGATTGACATGCTAGTTTTACGATTACCGTTCATCGATTCTCTTGTTTGCTCCAGACTCTCAGGCAATGACCTGATAGCCTTTGTAGATCTCTCAAAAATAGCTACCCTCTCCGGCATTAATTTATCAGCTAGAACGGTTGAATATCATATTGATGGTGATTTGACTGTCTCCGGCCTTTCTCACCCTTTTGAATCTTTACCTACACATTACTCAGGCATTGCATTTAAAATATATGAGGGTTCTAAAAATTTTTATCCTTGCGTTGAAATAAAGGCTTCTCCCGCAAAAGTATTACAGGGTCATAATGTTTTTGGTACAACCGATTTAGCTTTATGCTCTGAGGCTTTATTGCTTAATTTTGCTAATTCTTTGCCTTGCCTGTATGATTTATTGGATGTTAATGCTACTACTATTAGTAGAATTGATGCCACCTTTTCAGCTCGCGCCCCAAATGAAAATATAGCTAAACAGGTTATTGACCATTTGCGAAATGTATCTAATGGTCAAACTAAATCTACTCGTTCGCAGAATTGGGAATCAACTGTTATATGGAATGAAACTTCCAGACACCGTACTTTAGTTGCATATTTAAAACATGTTGAGCTACAGCATTATATTCAGCAATTAAGCTCTAAGCCATCCGCAAAAATGACCTCTTATCAAAAGGAGCAATTAAAGGTACTCTCTAATCCTGACCTGTTGGAGTTTGCTTCCGGTCTGGTTCGCTTTGAAGCTCGAATTAAAACGCGATATTTGAAGTCTTTCGGGCTTCCTCTTAATCTTTTTGATGCAATCCGCTTTGCTTCTGACTATAATAGTCAGGGTAAAGACCTGATTTTTGATTTATGGTCATTCTCGTTTTCTGAACTGTTTAAAGCATTTGAGGGGGATTCAATGAATATTTATGACGATTCCGCAGTATTGGACGCTATCCAGTCTAAACATTTTACTATTACCCCCTCTGGCAAAACTTCTTTTGCAAAAGCCTCTCGCTATTTTGGTTTTTATCGTCGTCTGGTAAACGAGGGTTATGATAGTGTTGCTCTTACTATGCCTCGTAATTCCTTTTGGCGTTATGTATCTGCATTAGTTGAATGTGGTATTCCTAAATCTCAACTGATGAATCTTTCTACCTGTAATAATGTTGTTCCGTTAGTTCGTTTTATTAACGTAGATTTTTCTTCCCAACGTCCTGACTGGTATAATGAGCCAGTTCTTAAAATCGCATAAGGTAATTCACAATGATTAAAGTTGAAATTAAACCATCTCAAGCCCAATTTACTACTCGTTCTGGTGTTTCTCGTCAGGGCAAGCCTTATTCACTGAATGAGCAGCTTTGTTACGTTGATTTGGGTAATGAATATCCGGTTCTTGTCAAGATTACTCTTGATGAAGGTCAGCCAGCCTATGCGCCTGGTCTGTACACCGTTCATCTGTCCTCTTTCAAAGTTGGTCAGTTCGGTTCCCTTATGATTGACCGTCTGCGCCTCGTTCCGGCTAAGTAACATGGAGCAGGTCGCGGATTTCGACACAATTTATCAGGCGATGATACAAATCTCCGTTGTACTTTGTTTCGCGCTTGGTATAATCGCTGGGGGTCAAAGATGAGTGTTTTAGTGTATTCTTTTGCCTCTTTCGTTTTAGGTTGGTGCCTTCGTAGTGGCATTACGTATTTTACCCGTTTAATGGAAACTTCCTCATGAAAAAGTCTTTAGTCCTCAAAGCCTCTGTAGCCGTTGCTACCCTCGTTCCGATGCTGTCTTTCGCTGCTGAGGGTGACGATCCCGCAAAAGCGGCCTTTAACTCCCTGCAAGCCTCAGCGACCGAATATATCGGTTATGCGTGGGCGATGGTTGTTGTCATTGTCGGCGCAACTATCGGTATCAAGCTGTTTAAGAAATTCACCTCGAAAGCAAGCTGATAAACCGATACAATTAAAGGCTCCTTTTGGAGCCTTTTTTTTGGAGATTTTCAACGTGAAAAAATTATTATTCGCAATTCCTTTAGTTGTTCCTTTCTATTCTCACTCCGCTGAAACTGTTGAAAGTTGTTTAGCAAAATCCCATACAGAAAATTCATTTACTAACGTCTGGAAAGACGACAAAACTTTAGATCGTTACGCTAACTATGAGGGCTGTCTGTGGAATGCTACAGGCGTTGTAGTTTGTACTGGTGACGAAACTCAGTGTTACGGTACATGGGTTCCTATTGGGCTTGCTATCCCTGAAAATGAGGGTGGTGGCTCTGAGGGTGGCGGTTCTGAGGGTGGCGGTTCTGAGGGTGGCGGTACTAAACCTCCTGAGTACGGTGATACACCTATTCCGGGCTATACTTATATCAACCCTCTCGACGGCACTTATCCGCCTGGTACTGAGCAAAACCCCGCTAATCCTAATCCTTCTCTTGAGGAGTCTCAGCCTCTTAATACTTTCATGTTTCAGAATAATAGGTTCCGAAATAGGCAGGGGGCATTAACTGTTTATACGGGCACTGTTACTCAAGGCACTGACCCCGTTAAAACTTATTACCAGTACACTCCTGTATCATCAAAAGCCATGTATGACGCTTACTGGAACGGTAAATTCAGAGACTGCGCTTTCCATTCTGGCTTTAATGAGGATTTATTTGTTTGTGAATATCAAGGCCAATCGTCTGACCTGCCTCAACCTCCTGTCAATGCTGGCGGCGGCTCTGGTGGTGGTTCTGGTGGCGGCTCTGAGGGTGGTGGCTCTGAGGGTGGCGGTTCTGAGGGTGGCGGCTCTGAGGGAGGCGGTTCCGGTGGTGGCTCTGGTTCCGGTGATTTTGATTATGAAAAGATGGCAAACGCTAATAAGGGGGCTATGACCGAAAATGCCGATGAAAACGCGCTACAGTCTGACGCTAAAGGCAAACTTGATTCTGTCGCTACTGATTACGGTGCTGCTATCGATGGTTTCATTGGTGACGTTTCCGGCCTTGCTAATGGTAATGGTGCTACTGGTGATTTTGCTGGCTCTAATTCCCAAATGGCTCAAGTCGGTGACGGTGATAATTCACCTTTAATGAATAATTTCCGTCAATATTTACCTTCCCTCCCTCAATCGGTTGAATGTCGCCCTTTTGTCTTTGGCGCTGGTAAACCATATGAATTTTCTATTGATTGTGACAAAATAAACTTATTCCGTGGTGTCTTTGCGTTTCTTTTATATGTTGCCACCTTTATGTATGTATTTTCTACGTTTGCTAACATACTGCGTAATAAGGAGTCTTAATCATGCCAGTTCTTTTGGGTATTCCGTTATTATTGCGTTTCCTCGGTTTCCTTCTGGTAACTTTGTTCGGCTATCTGCTTACTTTTCTTAAAAAGGGCTTCGGTAAGATAGCTATTGCTATTTCATTGTTTCTTGCTCTTATTATTGGGCTTAACTCAATTCTTGTGGGTTATCTCTCTGATATTAGCGCTCAATTACCCTCTGACTTTGTTCAGGGTGTTCAGTTAATTCTCCCGTCTAATGCGCTTCCCTGTTTTTATGTTATTCTCTCTGTAAAGGCTGCTATTTTCATTTTTGACGTTAAACAAAAAATCGTTTCTTATTTGGATTGGGATAAATAATATGGCTGTTTATTTTGTAACTGGCAAATTAGGCTCTGGAAAGACGCTCGTTAGCGTTGGTAAGATTCAGGATAAAATTGTAGCTGGGTGCAAAATAGCAACTAATCTTGATTTAAGGCTTCAAAACCTCCCGCAAGTCGGGAGGTTCGCTAAAACGCCTCGCGTTCTTAGAATACCGGATAAGCCTTCTATATCTGATTTGCTTGCTATTGGGCGCGGTAATGATTCCTACGATGAAAATAAAAACGGCTTGCTTGTTCTCGATGAGTGCGGTACTTGGTTTAATACCCGTTCTTGGAATGATAAGGAAAGACAGCCGATTATTGATTGGTTTCTACATGCTCGTAAATTAGGATGGGATATTATTTTTCTTGTTCAGGACTTATCTATTGTTGATAAACAGGCGCGTTCTGCATTAGCTGAACATGTTGTTTATTGTCGTCGTCTGGACAGAATTACTTTACCTTTTGTCGGTACTTTATATTCTCTTATTACTGGCTCGAAAATGCCTCTGCCTAAATTACATGTTGGCGTTGTTAAATATGGCGATTCTCAATTAAGCCCTACTGTTGAGCGTTGGCTTTATACTGGTAAGAATTTGTATAACGCATATGATACTAAACAGGCTTTTTCTAGTAATTATGATTCCGGTGTTTATTCTTATTTAACGCCTTATTTATCACACGGTCGGTATTTCAAACCATTAAATTTAGGTCAGAAGATGAAATTAACTAAAATATATTTGAAAAAGTTTTCTCGCGTTCTTTGTCTTGCGATTGGATTTGCATCAGCATTTACATATAGTTATATAACCCAACCTAAGCCGGAGGTTAAAAAGGTAGTCTCTCAGACCTATGATTTTGATAAATTCACTATTGACTCTTCTCAGCGTCTTAATCTAAGCTATCGCTATGTTTTCAAGGATTCTAAGGGAAAATTAATTAATAGCGACGATTTACAGAAGCAAGGTTATTCACTCACATATATTGATTTATGTACTGTTTCCATTAAAAAAGGTAATTCAAATGAAATTGTTAAATGTAATTAATTTTGTTTTCTTGATGTTTGTTTCATCATCTTCTTTTGCTCAGGTAATTGAAATGAATAATTCGCCTCTGCGCGATTTTGTAACTTGGTATTCAAAGCAATCAGGCGAATCCGTTATTGTTTCTCCCGATGTAAAAGGTACTGTTACTGTATATTCATCTGACGTTAAACCTGAAAATCTACGCAATTTCTTTATTTCTGTTTTACGTGCAAATAATTTTGATATGGTAGGTTCTAACCCTTCCATTATTCAGAAGTATAATCCAAACAATCAGGATTATATTGATGAATTGCCATCATCTGATAATCAGGAATATGATGATAATTCCGCTCCTTCTGGTGGTTTCTTTGTTCCGCAAAATGATAATGTTACTCAAACTTTTAAAATTAATAACGTTCGGGCAAAGGATTTAATACGAGTTGTCGAATTGTTTGTAAAGTCTAATACTTCTAAATCCTCAAATGTATTATCTATTGACGGCTCTAATCTATTAGTTGTTAGTGCTCCTAAAGATATTTTAGATAACCTTCCTCAATTCCTTTCAACTGTTGATTTGCCAACTGACCAGATATTGATTGAGGGTTTGATATTTGAGGTTCAGCAAGGTGATGCTTTAGATTTTTCATTTGCTGCTGGCTCTCAGCGTGGCACTGTTGCAGGCGGTGTTAATACTGACCGCCTCACCTCTGTTTTATCTTCTGCTGGTGGTTCGTTCGGTATTTTTAATGGCGATGTTTTAGGGCTATCAGTTCGCGCATTAAAGACTAATAGCCATTCAAAAATATTGTCTGTGCCACGTATTCTTACGCTTTCAGGTCAGAAGGGTTCTATCTCTGTTGGCCAGAATGTCCCTTTTATTACTGGTCGTGTGACTGGTGAATCTGCCAATGTAAATAATCCATTTCAGACGATTGAGCGTCAAAATGTAGGTATTTCCATGAGCGTTTTTCCTGTTGCAATGGCTGGCGGTAATATTGTTCTGGATATTACCAGCAAGGCCGATAGTTTGAGTTCTTCTACTCAGGCAAGTGATGTTATTACTAATCAAAGAAGTATTGCTACAACGGTTAATTTGCGTGATGGACAGACTCTTTTACTCGGTGGCCTCACTGATTATAAAA", + "is_scaffold": true, "domains": [ {"helix": 15, "forward": false, "start": 32, "end": 102, "deletions": [68]}, {"helix": 14, "forward": true, "start": 32, "end": 240, "deletions": [68, 115, 163, 212, 59, 91, 123, 155, 187, 219], "insertions": [[75, 1], [107, 1], [139, 1], [171, 1], [203, 1], [235, 1]]}, @@ -112,8 +113,7 @@ {"helix": 13, "forward": false, "start": 240, "end": 480, "deletions": [259, 307, 355, 403, 451, 267, 299, 331, 363, 395, 427], "insertions": [[251, 1], [283, 1], [315, 1], [347, 1], [379, 1], [411, 1]]}, {"helix": 14, "forward": true, "start": 240, "end": 480, "deletions": [259, 307, 355, 403, 451, 251, 283, 315, 347, 379, 411], "insertions": [[267, 1], [299, 1], [331, 1], [363, 1], [395, 1], [427, 1]]}, {"helix": 15, "forward": false, "start": 102, "end": 480, "deletions": [115, 163, 212, 259, 307, 355, 403, 451]} - ], - "is_scaffold": true + ] }, { "color": "#f74308", diff --git a/examples/proposal/yim.sc b/examples/proposal/yim.sc index 0de4b978..d91b9b17 100644 --- a/examples/proposal/yim.sc +++ b/examples/proposal/yim.sc @@ -1,70 +1,70 @@ { - "version": "0.10.1", + "version": "0.13.0", "grid": "none", "helices": [ { - "max_offset": 512, - "position": {"x": 0, "y": 0, "z": 0} + "position": {"x": 0, "y": 0, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.0, "z": 2.5} + "position": {"x": 2.5, "y": 0, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.9567085809127245, "z": 4.809698831278217} + "position": {"x": 4.809698831278217, "y": 0.9567085809127245, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 2.7244755338790934, "z": 6.577465784244586} + "position": {"x": 6.577465784244586, "y": 2.7244755338790934, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 5.034174365157311, "z": 7.534174365157311} + "position": {"x": 7.534174365157311, "y": 5.034174365157311, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 7.534174365157311, "z": 7.534174365157311} + "position": {"x": 7.534174365157311, "y": 7.534174365157311, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 9.843873196435528, "z": 6.577465784244587} + "position": {"x": 6.577465784244587, "y": 9.843873196435528, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 11.611640149401897, "z": 4.809698831278218} + "position": {"x": 4.809698831278218, "y": 11.611640149401897, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 12.568348730314622, "z": 2.500000000000001} + "position": {"x": 2.500000000000001, "y": 12.568348730314622, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 12.568348730314622, "z": 8.881784197001252e-16} + "position": {"x": 8.881784197001252e-16, "y": 12.568348730314622, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 11.611640149401897, "z": -2.309698831278216} + "position": {"x": -2.309698831278216, "y": 11.611640149401897, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 9.843873196435528, "z": -4.077465784244586} + "position": {"x": -4.077465784244586, "y": 9.843873196435528, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 7.534174365157312, "z": -5.034174365157312} + "position": {"x": -5.034174365157312, "y": 7.534174365157312, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 5.034174365157312, "z": -5.0341743651573125} + "position": {"x": -5.0341743651573125, "y": 5.034174365157312, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 2.724475533879095, "z": -4.077465784244588} + "position": {"x": -4.077465784244588, "y": 2.724475533879095, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.9567085809127276, "z": -2.309698831278218} + "position": {"x": -2.309698831278218, "y": 0.9567085809127276, "z": 0}, + "max_offset": 512 } ], "helices_view_order": [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0], @@ -80,6 +80,7 @@ { "color": "#0066cc", "sequence": "TTCCCTTCCTTTCTCGCCACGTTCGCCGGCTTTCCCCGTCAAGCTCTAAATCGGGGGCTCCCTTTAGGGTTCCGATTTAGTGCTTTACGGCACCTCGACCCCAAAAAACTTGATTTGGGTGATGGTTCACGTAGTGGGCCATCGCCCTGATAGACGGTTTTTCGCCCTTTGACGTTGGAGTCCACGTTCTTTAATAGTGGACTCTTGTTCCAAACTGGAACAACACTCAACCCTATCTCGGGCTATTCTTTTGATTTATAAGGGATTTTGCCGATTTCGGAACCACCATCAAACAGGATTTTCGCCTGCTGGGGCAAACCAGCGTGGACCGCTTGCTGCAACTCTCTCAGGGCCAGGCGGTGAAGGGCAATCAGCTGTTGCCCGTCTCACTGGTGAAAAGAAAAACCACCCTGGCGCCCAATACGCAAACCGCCTCTCCCCGCGCGTTGGCCGATTCATTAATGCAGCTGGCACGACAGGTTTCCCGACTGGAAAGCGGGCAGTGAGCGCAACGCAATTAATGTGAGTTAGCTCACTCATTAGGCACCCCAGGCTTTACACTTTATGCTTCCGGCTCGTATGTTGTGTGGAATTGTGAGCGGATAACAATTTCACACAGGAAACAGCTATGACCATGATTACGAATTCGAGCTCGGTACCCGGGGATCCTCTAGAGTCGACCTGCAGGCATGCAAGCTTGGCACTGGCCGTCGTTTTACAACGTCGTGACTGGGAAAACCCTGGCGTTACCCAACTTAATCGCCTTGCAGCACATCCCCCTTTCGCCAGCTGGCGTAATAGCGAAGAGGCCCGCACCGATCGCCCTTCCCAACAGTTGCGCAGCCTGAATGGCGAATGGCGCTTTGCCTGGTTTCCGGCACCAGAAGCGGTGCCGGAAAGCTGGCTGGAGTGCGATCTTCCTGAGGCCGATACTGTCGTCGTCCCCTCAAACTGGCAGATGCACGGTTACGATGCGCCCATCTACACCAACGTGACCTATCCCATTACGGTCAATCCGCCGTTTGTTCCCACGGAGAATCCGACGGGTTGTTACTCGCTCACATTTAATGTTGATGAAAGCTGGCTACAGGAAGGCCAGACGCGAATTATTTTTGATGGCGTTCCTATTGGTTAAAAAATGAGCTGATTTAACAAAAATTTAATGCGAATTTTAACAAAATATTAACGTTTACAATTTAAATATTTGCTTATACAATCTTCCTGTTTTTGGGGCTTTTCTGATTATCAACCGGGGTACATATGATTGACATGCTAGTTTTACGATTACCGTTCATCGATTCTCTTGTTTGCTCCAGACTCTCAGGCAATGACCTGATAGCCTTTGTAGATCTCTCAAAAATAGCTACCCTCTCCGGCATTAATTTATCAGCTAGAACGGTTGAATATCATATTGATGGTGATTTGACTGTCTCCGGCCTTTCTCACCCTTTTGAATCTTTACCTACACATTACTCAGGCATTGCATTTAAAATATATGAGGGTTCTAAAAATTTTTATCCTTGCGTTGAAATAAAGGCTTCTCCCGCAAAAGTATTACAGGGTCATAATGTTTTTGGTACAACCGATTTAGCTTTATGCTCTGAGGCTTTATTGCTTAATTTTGCTAATTCTTTGCCTTGCCTGTATGATTTATTGGATGTTAATGCTACTACTATTAGTAGAATTGATGCCACCTTTTCAGCTCGCGCCCCAAATGAAAATATAGCTAAACAGGTTATTGACCATTTGCGAAATGTATCTAATGGTCAAACTAAATCTACTCGTTCGCAGAATTGGGAATCAACTGTTATATGGAATGAAACTTCCAGACACCGTACTTTAGTTGCATATTTAAAACATGTTGAGCTACAGCATTATATTCAGCAATTAAGCTCTAAGCCATCCGCAAAAATGACCTCTTATCAAAAGGAGCAATTAAAGGTACTCTCTAATCCTGACCTGTTGGAGTTTGCTTCCGGTCTGGTTCGCTTTGAAGCTCGAATTAAAACGCGATATTTGAAGTCTTTCGGGCTTCCTCTTAATCTTTTTGATGCAATCCGCTTTGCTTCTGACTATAATAGTCAGGGTAAAGACCTGATTTTTGATTTATGGTCATTCTCGTTTTCTGAACTGTTTAAAGCATTTGAGGGGGATTCAATGAATATTTATGACGATTCCGCAGTATTGGACGCTATCCAGTCTAAACATTTTACTATTACCCCCTCTGGCAAAACTTCTTTTGCAAAAGCCTCTCGCTATTTTGGTTTTTATCGTCGTCTGGTAAACGAGGGTTATGATAGTGTTGCTCTTACTATGCCTCGTAATTCCTTTTGGCGTTATGTATCTGCATTAGTTGAATGTGGTATTCCTAAATCTCAACTGATGAATCTTTCTACCTGTAATAATGTTGTTCCGTTAGTTCGTTTTATTAACGTAGATTTTTCTTCCCAACGTCCTGACTGGTATAATGAGCCAGTTCTTAAAATCGCATAAGGTAATTCACAATGATTAAAGTTGAAATTAAACCATCTCAAGCCCAATTTACTACTCGTTCTGGTGTTTCTCGTCAGGGCAAGCCTTATTCACTGAATGAGCAGCTTTGTTACGTTGATTTGGGTAATGAATATCCGGTTCTTGTCAAGATTACTCTTGATGAAGGTCAGCCAGCCTATGCGCCTGGTCTGTACACCGTTCATCTGTCCTCTTTCAAAGTTGGTCAGTTCGGTTCCCTTATGATTGACCGTCTGCGCCTCGTTCCGGCTAAGTAACATGGAGCAGGTCGCGGATTTCGACACAATTTATCAGGCGATGATACAAATCTCCGTTGTACTTTGTTTCGCGCTTGGTATAATCGCTGGGGGTCAAAGATGAGTGTTTTAGTGTATTCTTTTGCCTCTTTCGTTTTAGGTTGGTGCCTTCGTAGTGGCATTACGTATTTTACCCGTTTAATGGAAACTTCCTCATGAAAAAGTCTTTAGTCCTCAAAGCCTCTGTAGCCGTTGCTACCCTCGTTCCGATGCTGTCTTTCGCTGCTGAGGGTGACGATCCCGCAAAAGCGGCCTTTAACTCCCTGCAAGCCTCAGCGACCGAATATATCGGTTATGCGTGGGCGATGGTTGTTGTCATTGTCGGCGCAACTATCGGTATCAAGCTGTTTAAGAAATTCACCTCGAAAGCAAGCTGATAAACCGATACAATTAAAGGCTCCTTTTGGAGCCTTTTTTTTGGAGATTTTCAACGTGAAAAAATTATTATTCGCAATTCCTTTAGTTGTTCCTTTCTATTCTCACTCCGCTGAAACTGTTGAAAGTTGTTTAGCAAAATCCCATACAGAAAATTCATTTACTAACGTCTGGAAAGACGACAAAACTTTAGATCGTTACGCTAACTATGAGGGCTGTCTGTGGAATGCTACAGGCGTTGTAGTTTGTACTGGTGACGAAACTCAGTGTTACGGTACATGGGTTCCTATTGGGCTTGCTATCCCTGAAAATGAGGGTGGTGGCTCTGAGGGTGGCGGTTCTGAGGGTGGCGGTTCTGAGGGTGGCGGTACTAAACCTCCTGAGTACGGTGATACACCTATTCCGGGCTATACTTATATCAACCCTCTCGACGGCACTTATCCGCCTGGTACTGAGCAAAACCCCGCTAATCCTAATCCTTCTCTTGAGGAGTCTCAGCCTCTTAATACTTTCATGTTTCAGAATAATAGGTTCCGAAATAGGCAGGGGGCATTAACTGTTTATACGGGCACTGTTACTCAAGGCACTGACCCCGTTAAAACTTATTACCAGTACACTCCTGTATCATCAAAAGCCATGTATGACGCTTACTGGAACGGTAAATTCAGAGACTGCGCTTTCCATTCTGGCTTTAATGAGGATTTATTTGTTTGTGAATATCAAGGCCAATCGTCTGACCTGCCTCAACCTCCTGTCAATGCTGGCGGCGGCTCTGGTGGTGGTTCTGGTGGCGGCTCTGAGGGTGGTGGCTCTGAGGGTGGCGGTTCTGAGGGTGGCGGCTCTGAGGGAGGCGGTTCCGGTGGTGGCTCTGGTTCCGGTGATTTTGATTATGAAAAGATGGCAAACGCTAATAAGGGGGCTATGACCGAAAATGCCGATGAAAACGCGCTACAGTCTGACGCTAAAGGCAAACTTGATTCTGTCGCTACTGATTACGGTGCTGCTATCGATGGTTTCATTGGTGACGTTTCCGGCCTTGCTAATGGTAATGGTGCTACTGGTGATTTTGCTGGCTCTAATTCCCAAATGGCTCAAGTCGGTGACGGTGATAATTCACCTTTAATGAATAATTTCCGTCAATATTTACCTTCCCTCCCTCAATCGGTTGAATGTCGCCCTTTTGTCTTTGGCGCTGGTAAACCATATGAATTTTCTATTGATTGTGACAAAATAAACTTATTCCGTGGTGTCTTTGCGTTTCTTTTATATGTTGCCACCTTTATGTATGTATTTTCTACGTTTGCTAACATACTGCGTAATAAGGAGTCTTAATCATGCCAGTTCTTTTGGGTATTCCGTTATTATTGCGTTTCCTCGGTTTCCTTCTGGTAACTTTGTTCGGCTATCTGCTTACTTTTCTTAAAAAGGGCTTCGGTAAGATAGCTATTGCTATTTCATTGTTTCTTGCTCTTATTATTGGGCTTAACTCAATTCTTGTGGGTTATCTCTCTGATATTAGCGCTCAATTACCCTCTGACTTTGTTCAGGGTGTTCAGTTAATTCTCCCGTCTAATGCGCTTCCCTGTTTTTATGTTATTCTCTCTGTAAAGGCTGCTATTTTCATTTTTGACGTTAAACAAAAAATCGTTTCTTATTTGGATTGGGATAAATAATATGGCTGTTTATTTTGTAACTGGCAAATTAGGCTCTGGAAAGACGCTCGTTAGCGTTGGTAAGATTCAGGATAAAATTGTAGCTGGGTGCAAAATAGCAACTAATCTTGATTTAAGGCTTCAAAACCTCCCGCAAGTCGGGAGGTTCGCTAAAACGCCTCGCGTTCTTAGAATACCGGATAAGCCTTCTATATCTGATTTGCTTGCTATTGGGCGCGGTAATGATTCCTACGATGAAAATAAAAACGGCTTGCTTGTTCTCGATGAGTGCGGTACTTGGTTTAATACCCGTTCTTGGAATGATAAGGAAAGACAGCCGATTATTGATTGGTTTCTACATGCTCGTAAATTAGGATGGGATATTATTTTTCTTGTTCAGGACTTATCTATTGTTGATAAACAGGCGCGTTCTGCATTAGCTGAACATGTTGTTTATTGTCGTCGTCTGGACAGAATTACTTTACCTTTTGTCGGTACTTTATATTCTCTTATTACTGGCTCGAAAATGCCTCTGCCTAAATTACATGTTGGCGTTGTTAAATATGGCGATTCTCAATTAAGCCCTACTGTTGAGCGTTGGCTTTATACTGGTAAGAATTTGTATAACGCATATGATACTAAACAGGCTTTTTCTAGTAATTATGATTCCGGTGTTTATTCTTATTTAACGCCTTATTTATCACACGGTCGGTATTTCAAACCATTAAATTTAGGTCAGAAGATGAAATTAACTAAAATATATTTGAAAAAGTTTTCTCGCGTTCTTTGTCTTGCGATTGGATTTGCATCAGCATTTACATATAGTTATATAACCCAACCTAAGCCGGAGGTTAAAAAGGTAGTCTCTCAGACCTATGATTTTGATAAATTCACTATTGACTCTTCTCAGCGTCTTAATCTAAGCTATCGCTATGTTTTCAAGGATTCTAAGGGAAAATTAATTAATAGCGACGATTTACAGAAGCAAGGTTATTCACTCACATATATTGATTTATGTACTGTTTCCATTAAAAAAGGTAATTCAAATGAAATTGTTAAATGTAATTAATTTTGTTTTCTTGATGTTTGTTTCATCATCTTCTTTTGCTCAGGTAATTGAAATGAATAATTCGCCTCTGCGCGATTTTGTAACTTGGTATTCAAAGCAATCAGGCGAATCCGTTATTGTTTCTCCCGATGTAAAAGGTACTGTTACTGTATATTCATCTGACGTTAAACCTGAAAATCTACGCAATTTCTTTATTTCTGTTTTACGTGCAAATAATTTTGATATGGTAGGTTCTAACCCTTCCATTATTCAGAAGTATAATCCAAACAATCAGGATTATATTGATGAATTGCCATCATCTGATAATCAGGAATATGATGATAATTCCGCTCCTTCTGGTGGTTTCTTTGTTCCGCAAAATGATAATGTTACTCAAACTTTTAAAATTAATAACGTTCGGGCAAAGGATTTAATACGAGTTGTCGAATTGTTTGTAAAGTCTAATACTTCTAAATCCTCAAATGTATTATCTATTGACGGCTCTAATCTATTAGTTGTTAGTGCTCCTAAAGATATTTTAGATAACCTTCCTCAATTCCTTTCAACTGTTGATTTGCCAACTGACCAGATATTGATTGAGGGTTTGATATTTGAGGTTCAGCAAGGTGATGCTTTAGATTTTTCATTTGCTGCTGGCTCTCAGCGTGGCACTGTTGCAGGCGGTGTTAATACTGACCGCCTCACCTCTGTTTTATCTTCTGCTGGTGGTTCGTTCGGTATTTTTAATGGCGATGTTTTAGGGCTATCAGTTCGCGCATTAAAGACTAATAGCCATTCAAAAATATTGTCTGTGCCACGTATTCTTACGCTTTCAGGTCAGAAGGGTTCTATCTCTGTTGGCCAGAATGTCCCTTTTATTACTGGTCGTGTGACTGGTGAATCTGCCAATGTAAATAATCCATTTCAGACGATTGAGCGTCAAAATGTAGGTATTTCCATGAGCGTTTTTCCTGTTGCAATGGCTGGCGGTAATATTGTTCTGGATATTACCAGCAAGGCCGATAGTTTGAGTTCTTCTACTCAGGCAAGTGATGTTATTACTAATCAAAGAAGTATTGCTACAACGGTTAATTTGCGTGATGGACAGACTCTTTTACTCGGTGGCCTCACTGATTATAAAA", + "is_scaffold": true, "domains": [ {"helix": 15, "forward": false, "start": 32, "end": 102, "deletions": [68]}, {"helix": 14, "forward": true, "start": 32, "end": 240, "deletions": [68, 115, 163, 212, 59, 91, 123, 155, 187, 219], "insertions": [[75, 1], [107, 1], [139, 1], [171, 1], [203, 1], [235, 1]]}, @@ -112,8 +113,7 @@ {"helix": 13, "forward": false, "start": 240, "end": 480, "deletions": [259, 307, 355, 403, 451, 267, 299, 331, 363, 395, 427], "insertions": [[251, 1], [283, 1], [315, 1], [347, 1], [379, 1], [411, 1]]}, {"helix": 14, "forward": true, "start": 240, "end": 480, "deletions": [259, 307, 355, 403, 451, 251, 283, 315, 347, 379, 411], "insertions": [[267, 1], [299, 1], [331, 1], [363, 1], [395, 1], [427, 1]]}, {"helix": 15, "forward": false, "start": 102, "end": 480, "deletions": [115, 163, 212, 259, 307, 355, 403, 451]} - ], - "is_scaffold": true + ] }, { "color": "#f74308", diff --git a/examples/proposal/you.sc b/examples/proposal/you.sc index 27caa28b..48493fad 100644 --- a/examples/proposal/you.sc +++ b/examples/proposal/you.sc @@ -1,70 +1,70 @@ { - "version": "0.10.1", + "version": "0.13.0", "grid": "none", "helices": [ { - "max_offset": 512, - "position": {"x": 0, "y": 0, "z": 0} + "position": {"x": 0, "y": 0, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.0, "z": 2.5} + "position": {"x": 2.5, "y": 0, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.9567085809127245, "z": 4.809698831278217} + "position": {"x": 4.809698831278217, "y": 0.9567085809127245, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 2.7244755338790934, "z": 6.577465784244586} + "position": {"x": 6.577465784244586, "y": 2.7244755338790934, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 5.034174365157311, "z": 7.534174365157311} + "position": {"x": 7.534174365157311, "y": 5.034174365157311, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 7.534174365157311, "z": 7.534174365157311} + "position": {"x": 7.534174365157311, "y": 7.534174365157311, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 9.843873196435528, "z": 6.577465784244587} + "position": {"x": 6.577465784244587, "y": 9.843873196435528, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 11.611640149401897, "z": 4.809698831278218} + "position": {"x": 4.809698831278218, "y": 11.611640149401897, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 12.568348730314622, "z": 2.500000000000001} + "position": {"x": 2.500000000000001, "y": 12.568348730314622, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 12.568348730314622, "z": 8.881784197001252e-16} + "position": {"x": 8.881784197001252e-16, "y": 12.568348730314622, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 11.611640149401897, "z": -2.309698831278216} + "position": {"x": -2.309698831278216, "y": 11.611640149401897, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 9.843873196435528, "z": -4.077465784244586} + "position": {"x": -4.077465784244586, "y": 9.843873196435528, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 7.534174365157312, "z": -5.034174365157312} + "position": {"x": -5.034174365157312, "y": 7.534174365157312, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 5.034174365157312, "z": -5.0341743651573125} + "position": {"x": -5.0341743651573125, "y": 5.034174365157312, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 2.724475533879095, "z": -4.077465784244588} + "position": {"x": -4.077465784244588, "y": 2.724475533879095, "z": 0}, + "max_offset": 512 }, { - "max_offset": 512, - "position": {"x": 0, "y": 0.9567085809127276, "z": -2.309698831278218} + "position": {"x": -2.309698831278218, "y": 0.9567085809127276, "z": 0}, + "max_offset": 512 } ], "helices_view_order": [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0], @@ -80,6 +80,7 @@ { "color": "#0066cc", "sequence": "TTCCCTTCCTTTCTCGCCACGTTCGCCGGCTTTCCCCGTCAAGCTCTAAATCGGGGGCTCCCTTTAGGGTTCCGATTTAGTGCTTTACGGCACCTCGACCCCAAAAAACTTGATTTGGGTGATGGTTCACGTAGTGGGCCATCGCCCTGATAGACGGTTTTTCGCCCTTTGACGTTGGAGTCCACGTTCTTTAATAGTGGACTCTTGTTCCAAACTGGAACAACACTCAACCCTATCTCGGGCTATTCTTTTGATTTATAAGGGATTTTGCCGATTTCGGAACCACCATCAAACAGGATTTTCGCCTGCTGGGGCAAACCAGCGTGGACCGCTTGCTGCAACTCTCTCAGGGCCAGGCGGTGAAGGGCAATCAGCTGTTGCCCGTCTCACTGGTGAAAAGAAAAACCACCCTGGCGCCCAATACGCAAACCGCCTCTCCCCGCGCGTTGGCCGATTCATTAATGCAGCTGGCACGACAGGTTTCCCGACTGGAAAGCGGGCAGTGAGCGCAACGCAATTAATGTGAGTTAGCTCACTCATTAGGCACCCCAGGCTTTACACTTTATGCTTCCGGCTCGTATGTTGTGTGGAATTGTGAGCGGATAACAATTTCACACAGGAAACAGCTATGACCATGATTACGAATTCGAGCTCGGTACCCGGGGATCCTCTAGAGTCGACCTGCAGGCATGCAAGCTTGGCACTGGCCGTCGTTTTACAACGTCGTGACTGGGAAAACCCTGGCGTTACCCAACTTAATCGCCTTGCAGCACATCCCCCTTTCGCCAGCTGGCGTAATAGCGAAGAGGCCCGCACCGATCGCCCTTCCCAACAGTTGCGCAGCCTGAATGGCGAATGGCGCTTTGCCTGGTTTCCGGCACCAGAAGCGGTGCCGGAAAGCTGGCTGGAGTGCGATCTTCCTGAGGCCGATACTGTCGTCGTCCCCTCAAACTGGCAGATGCACGGTTACGATGCGCCCATCTACACCAACGTGACCTATCCCATTACGGTCAATCCGCCGTTTGTTCCCACGGAGAATCCGACGGGTTGTTACTCGCTCACATTTAATGTTGATGAAAGCTGGCTACAGGAAGGCCAGACGCGAATTATTTTTGATGGCGTTCCTATTGGTTAAAAAATGAGCTGATTTAACAAAAATTTAATGCGAATTTTAACAAAATATTAACGTTTACAATTTAAATATTTGCTTATACAATCTTCCTGTTTTTGGGGCTTTTCTGATTATCAACCGGGGTACATATGATTGACATGCTAGTTTTACGATTACCGTTCATCGATTCTCTTGTTTGCTCCAGACTCTCAGGCAATGACCTGATAGCCTTTGTAGATCTCTCAAAAATAGCTACCCTCTCCGGCATTAATTTATCAGCTAGAACGGTTGAATATCATATTGATGGTGATTTGACTGTCTCCGGCCTTTCTCACCCTTTTGAATCTTTACCTACACATTACTCAGGCATTGCATTTAAAATATATGAGGGTTCTAAAAATTTTTATCCTTGCGTTGAAATAAAGGCTTCTCCCGCAAAAGTATTACAGGGTCATAATGTTTTTGGTACAACCGATTTAGCTTTATGCTCTGAGGCTTTATTGCTTAATTTTGCTAATTCTTTGCCTTGCCTGTATGATTTATTGGATGTTAATGCTACTACTATTAGTAGAATTGATGCCACCTTTTCAGCTCGCGCCCCAAATGAAAATATAGCTAAACAGGTTATTGACCATTTGCGAAATGTATCTAATGGTCAAACTAAATCTACTCGTTCGCAGAATTGGGAATCAACTGTTATATGGAATGAAACTTCCAGACACCGTACTTTAGTTGCATATTTAAAACATGTTGAGCTACAGCATTATATTCAGCAATTAAGCTCTAAGCCATCCGCAAAAATGACCTCTTATCAAAAGGAGCAATTAAAGGTACTCTCTAATCCTGACCTGTTGGAGTTTGCTTCCGGTCTGGTTCGCTTTGAAGCTCGAATTAAAACGCGATATTTGAAGTCTTTCGGGCTTCCTCTTAATCTTTTTGATGCAATCCGCTTTGCTTCTGACTATAATAGTCAGGGTAAAGACCTGATTTTTGATTTATGGTCATTCTCGTTTTCTGAACTGTTTAAAGCATTTGAGGGGGATTCAATGAATATTTATGACGATTCCGCAGTATTGGACGCTATCCAGTCTAAACATTTTACTATTACCCCCTCTGGCAAAACTTCTTTTGCAAAAGCCTCTCGCTATTTTGGTTTTTATCGTCGTCTGGTAAACGAGGGTTATGATAGTGTTGCTCTTACTATGCCTCGTAATTCCTTTTGGCGTTATGTATCTGCATTAGTTGAATGTGGTATTCCTAAATCTCAACTGATGAATCTTTCTACCTGTAATAATGTTGTTCCGTTAGTTCGTTTTATTAACGTAGATTTTTCTTCCCAACGTCCTGACTGGTATAATGAGCCAGTTCTTAAAATCGCATAAGGTAATTCACAATGATTAAAGTTGAAATTAAACCATCTCAAGCCCAATTTACTACTCGTTCTGGTGTTTCTCGTCAGGGCAAGCCTTATTCACTGAATGAGCAGCTTTGTTACGTTGATTTGGGTAATGAATATCCGGTTCTTGTCAAGATTACTCTTGATGAAGGTCAGCCAGCCTATGCGCCTGGTCTGTACACCGTTCATCTGTCCTCTTTCAAAGTTGGTCAGTTCGGTTCCCTTATGATTGACCGTCTGCGCCTCGTTCCGGCTAAGTAACATGGAGCAGGTCGCGGATTTCGACACAATTTATCAGGCGATGATACAAATCTCCGTTGTACTTTGTTTCGCGCTTGGTATAATCGCTGGGGGTCAAAGATGAGTGTTTTAGTGTATTCTTTTGCCTCTTTCGTTTTAGGTTGGTGCCTTCGTAGTGGCATTACGTATTTTACCCGTTTAATGGAAACTTCCTCATGAAAAAGTCTTTAGTCCTCAAAGCCTCTGTAGCCGTTGCTACCCTCGTTCCGATGCTGTCTTTCGCTGCTGAGGGTGACGATCCCGCAAAAGCGGCCTTTAACTCCCTGCAAGCCTCAGCGACCGAATATATCGGTTATGCGTGGGCGATGGTTGTTGTCATTGTCGGCGCAACTATCGGTATCAAGCTGTTTAAGAAATTCACCTCGAAAGCAAGCTGATAAACCGATACAATTAAAGGCTCCTTTTGGAGCCTTTTTTTTGGAGATTTTCAACGTGAAAAAATTATTATTCGCAATTCCTTTAGTTGTTCCTTTCTATTCTCACTCCGCTGAAACTGTTGAAAGTTGTTTAGCAAAATCCCATACAGAAAATTCATTTACTAACGTCTGGAAAGACGACAAAACTTTAGATCGTTACGCTAACTATGAGGGCTGTCTGTGGAATGCTACAGGCGTTGTAGTTTGTACTGGTGACGAAACTCAGTGTTACGGTACATGGGTTCCTATTGGGCTTGCTATCCCTGAAAATGAGGGTGGTGGCTCTGAGGGTGGCGGTTCTGAGGGTGGCGGTTCTGAGGGTGGCGGTACTAAACCTCCTGAGTACGGTGATACACCTATTCCGGGCTATACTTATATCAACCCTCTCGACGGCACTTATCCGCCTGGTACTGAGCAAAACCCCGCTAATCCTAATCCTTCTCTTGAGGAGTCTCAGCCTCTTAATACTTTCATGTTTCAGAATAATAGGTTCCGAAATAGGCAGGGGGCATTAACTGTTTATACGGGCACTGTTACTCAAGGCACTGACCCCGTTAAAACTTATTACCAGTACACTCCTGTATCATCAAAAGCCATGTATGACGCTTACTGGAACGGTAAATTCAGAGACTGCGCTTTCCATTCTGGCTTTAATGAGGATTTATTTGTTTGTGAATATCAAGGCCAATCGTCTGACCTGCCTCAACCTCCTGTCAATGCTGGCGGCGGCTCTGGTGGTGGTTCTGGTGGCGGCTCTGAGGGTGGTGGCTCTGAGGGTGGCGGTTCTGAGGGTGGCGGCTCTGAGGGAGGCGGTTCCGGTGGTGGCTCTGGTTCCGGTGATTTTGATTATGAAAAGATGGCAAACGCTAATAAGGGGGCTATGACCGAAAATGCCGATGAAAACGCGCTACAGTCTGACGCTAAAGGCAAACTTGATTCTGTCGCTACTGATTACGGTGCTGCTATCGATGGTTTCATTGGTGACGTTTCCGGCCTTGCTAATGGTAATGGTGCTACTGGTGATTTTGCTGGCTCTAATTCCCAAATGGCTCAAGTCGGTGACGGTGATAATTCACCTTTAATGAATAATTTCCGTCAATATTTACCTTCCCTCCCTCAATCGGTTGAATGTCGCCCTTTTGTCTTTGGCGCTGGTAAACCATATGAATTTTCTATTGATTGTGACAAAATAAACTTATTCCGTGGTGTCTTTGCGTTTCTTTTATATGTTGCCACCTTTATGTATGTATTTTCTACGTTTGCTAACATACTGCGTAATAAGGAGTCTTAATCATGCCAGTTCTTTTGGGTATTCCGTTATTATTGCGTTTCCTCGGTTTCCTTCTGGTAACTTTGTTCGGCTATCTGCTTACTTTTCTTAAAAAGGGCTTCGGTAAGATAGCTATTGCTATTTCATTGTTTCTTGCTCTTATTATTGGGCTTAACTCAATTCTTGTGGGTTATCTCTCTGATATTAGCGCTCAATTACCCTCTGACTTTGTTCAGGGTGTTCAGTTAATTCTCCCGTCTAATGCGCTTCCCTGTTTTTATGTTATTCTCTCTGTAAAGGCTGCTATTTTCATTTTTGACGTTAAACAAAAAATCGTTTCTTATTTGGATTGGGATAAATAATATGGCTGTTTATTTTGTAACTGGCAAATTAGGCTCTGGAAAGACGCTCGTTAGCGTTGGTAAGATTCAGGATAAAATTGTAGCTGGGTGCAAAATAGCAACTAATCTTGATTTAAGGCTTCAAAACCTCCCGCAAGTCGGGAGGTTCGCTAAAACGCCTCGCGTTCTTAGAATACCGGATAAGCCTTCTATATCTGATTTGCTTGCTATTGGGCGCGGTAATGATTCCTACGATGAAAATAAAAACGGCTTGCTTGTTCTCGATGAGTGCGGTACTTGGTTTAATACCCGTTCTTGGAATGATAAGGAAAGACAGCCGATTATTGATTGGTTTCTACATGCTCGTAAATTAGGATGGGATATTATTTTTCTTGTTCAGGACTTATCTATTGTTGATAAACAGGCGCGTTCTGCATTAGCTGAACATGTTGTTTATTGTCGTCGTCTGGACAGAATTACTTTACCTTTTGTCGGTACTTTATATTCTCTTATTACTGGCTCGAAAATGCCTCTGCCTAAATTACATGTTGGCGTTGTTAAATATGGCGATTCTCAATTAAGCCCTACTGTTGAGCGTTGGCTTTATACTGGTAAGAATTTGTATAACGCATATGATACTAAACAGGCTTTTTCTAGTAATTATGATTCCGGTGTTTATTCTTATTTAACGCCTTATTTATCACACGGTCGGTATTTCAAACCATTAAATTTAGGTCAGAAGATGAAATTAACTAAAATATATTTGAAAAAGTTTTCTCGCGTTCTTTGTCTTGCGATTGGATTTGCATCAGCATTTACATATAGTTATATAACCCAACCTAAGCCGGAGGTTAAAAAGGTAGTCTCTCAGACCTATGATTTTGATAAATTCACTATTGACTCTTCTCAGCGTCTTAATCTAAGCTATCGCTATGTTTTCAAGGATTCTAAGGGAAAATTAATTAATAGCGACGATTTACAGAAGCAAGGTTATTCACTCACATATATTGATTTATGTACTGTTTCCATTAAAAAAGGTAATTCAAATGAAATTGTTAAATGTAATTAATTTTGTTTTCTTGATGTTTGTTTCATCATCTTCTTTTGCTCAGGTAATTGAAATGAATAATTCGCCTCTGCGCGATTTTGTAACTTGGTATTCAAAGCAATCAGGCGAATCCGTTATTGTTTCTCCCGATGTAAAAGGTACTGTTACTGTATATTCATCTGACGTTAAACCTGAAAATCTACGCAATTTCTTTATTTCTGTTTTACGTGCAAATAATTTTGATATGGTAGGTTCTAACCCTTCCATTATTCAGAAGTATAATCCAAACAATCAGGATTATATTGATGAATTGCCATCATCTGATAATCAGGAATATGATGATAATTCCGCTCCTTCTGGTGGTTTCTTTGTTCCGCAAAATGATAATGTTACTCAAACTTTTAAAATTAATAACGTTCGGGCAAAGGATTTAATACGAGTTGTCGAATTGTTTGTAAAGTCTAATACTTCTAAATCCTCAAATGTATTATCTATTGACGGCTCTAATCTATTAGTTGTTAGTGCTCCTAAAGATATTTTAGATAACCTTCCTCAATTCCTTTCAACTGTTGATTTGCCAACTGACCAGATATTGATTGAGGGTTTGATATTTGAGGTTCAGCAAGGTGATGCTTTAGATTTTTCATTTGCTGCTGGCTCTCAGCGTGGCACTGTTGCAGGCGGTGTTAATACTGACCGCCTCACCTCTGTTTTATCTTCTGCTGGTGGTTCGTTCGGTATTTTTAATGGCGATGTTTTAGGGCTATCAGTTCGCGCATTAAAGACTAATAGCCATTCAAAAATATTGTCTGTGCCACGTATTCTTACGCTTTCAGGTCAGAAGGGTTCTATCTCTGTTGGCCAGAATGTCCCTTTTATTACTGGTCGTGTGACTGGTGAATCTGCCAATGTAAATAATCCATTTCAGACGATTGAGCGTCAAAATGTAGGTATTTCCATGAGCGTTTTTCCTGTTGCAATGGCTGGCGGTAATATTGTTCTGGATATTACCAGCAAGGCCGATAGTTTGAGTTCTTCTACTCAGGCAAGTGATGTTATTACTAATCAAAGAAGTATTGCTACAACGGTTAATTTGCGTGATGGACAGACTCTTTTACTCGGTGGCCTCACTGATTATAAAA", + "is_scaffold": true, "domains": [ {"helix": 15, "forward": false, "start": 32, "end": 102, "deletions": [68]}, {"helix": 14, "forward": true, "start": 32, "end": 240, "deletions": [68, 115, 163, 212, 59, 91, 123, 155, 187, 219], "insertions": [[75, 1], [107, 1], [139, 1], [171, 1], [203, 1], [235, 1]]}, @@ -112,8 +113,7 @@ {"helix": 13, "forward": false, "start": 240, "end": 480, "deletions": [259, 307, 355, 403, 451, 267, 299, 331, 363, 395, 427], "insertions": [[251, 1], [283, 1], [315, 1], [347, 1], [379, 1], [411, 1]]}, {"helix": 14, "forward": true, "start": 240, "end": 480, "deletions": [259, 307, 355, 403, 451, 251, 283, 315, 347, 379, 411], "insertions": [[267, 1], [299, 1], [331, 1], [363, 1], [395, 1], [427, 1]]}, {"helix": 15, "forward": false, "start": 102, "end": 480, "deletions": [115, 163, 212, 259, 307, 355, 403, 451]} - ], - "is_scaffold": true + ] }, { "color": "#f74308", From 33822476167006e60bcc896abf328a60e68b017c Mon Sep 17 00:00:00 2001 From: David Doty Date: Sat, 21 Nov 2020 09:59:13 -0800 Subject: [PATCH 19/23] updated docstrings for Position3D --- scadnano/scadnano.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scadnano/scadnano.py b/scadnano/scadnano.py index 2e85ef6b..ed7a9cd0 100644 --- a/scadnano/scadnano.py +++ b/scadnano/scadnano.py @@ -935,7 +935,8 @@ class Position3D(_JSONSerializable): y: float = 0 """y-coordinate of position. Increasing `y` moves down in the side and main views, i.e., "screen coordinates". - (though this can be inverted to Cartesian coordinates, to agree with codenano)""" + (though this can be rotated to Cartesian coordinates, where y goes up, + by selecting "invert y/z axes" in the View menu of scadnano.)""" z: float = 0 """z-coordinate of position. From 10eca786ccfc87611230b047c97f0af0ab571a0a Mon Sep 17 00:00:00 2001 From: David Doty Date: Sat, 21 Nov 2020 10:11:08 -0800 Subject: [PATCH 20/23] updated StrandBuilder docstrings --- scadnano/scadnano.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scadnano/scadnano.py b/scadnano/scadnano.py index ed7a9cd0..89e28f62 100644 --- a/scadnano/scadnano.py +++ b/scadnano/scadnano.py @@ -2010,8 +2010,9 @@ class StrandBuilder(Generic[StrandLabel, DomainLabel]): design.strand(0, 0).to(10).cross(1).to(5).with_modification_5p(mod.biotin_5p).as_scaffold() - :any:`StrandBuilder` should generally not be created directly or manipulated in ways other than the kind - of method chaining described above, or else errors could result. + :any:`StrandBuilder` should generally not be created directly. + Although it is convenient to use chained method calls, it is also sometimes useful to assign the + :any:`StrandBuilder` object into a variable and then call the methods on that variable. """ # remove quotes when Py3.6 support dropped @@ -2034,7 +2035,8 @@ def strand(self) -> 'Strand[StrandLabel, DomainLabel]': def cross(self, helix: int, offset: Optional[int] = None, move: Optional[int] = None) \ -> 'StrandBuilder[StrandLabel, DomainLabel]': """ - Add crossover. Must be followed by call to :py:meth:`StrandBuilder.to` to have any effect. + Add crossover. To have any effect, must be followed by call to :py:meth:`StrandBuilder.to` + or :py:meth:`StrandBuilder.move`. :param helix: :any:`Helix` to crossover to :param offset: new offset on `helix`. If not specified, defaults to current offset. From 1c36eeb3595e74bf982a57fd07b1c41511336985 Mon Sep 17 00:00:00 2001 From: David Doty Date: Sat, 21 Nov 2020 10:12:31 -0800 Subject: [PATCH 21/23] Update scadnano.py --- scadnano/scadnano.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scadnano/scadnano.py b/scadnano/scadnano.py index 89e28f62..e7962bfe 100644 --- a/scadnano/scadnano.py +++ b/scadnano/scadnano.py @@ -2089,7 +2089,8 @@ def loopout(self, helix: int, length: int, offset: Optional[int] = None, move: O def move(self, delta: int) -> 'StrandBuilder[StrandLabel, DomainLabel]': """ Extends this :any:`StrandBuilder` on the current helix to offset given by the current offset - plus `delta`, which adds a new :any:`Domain` to the :any:`Strand` being built. This is a + plus `delta`, which adds a new :any:`Domain` to the :any:`Strand` being built unless immediately + preceded by another call to :py:meth:`StrandBuilder.move` or :py:meth:`StrandBuilder.to`. This is a "relative move", whereas :py:meth:`StrandBuilder.to` and :py:meth:`StrandBuilder.update_to` are "absolute moves". From b91ef990e6296f9b439a954423f316317b54a8b7 Mon Sep 17 00:00:00 2001 From: David Doty Date: Sat, 21 Nov 2020 10:13:27 -0800 Subject: [PATCH 22/23] reverted previous edit of docstrings --- scadnano/scadnano.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scadnano/scadnano.py b/scadnano/scadnano.py index e7962bfe..89e28f62 100644 --- a/scadnano/scadnano.py +++ b/scadnano/scadnano.py @@ -2089,8 +2089,7 @@ def loopout(self, helix: int, length: int, offset: Optional[int] = None, move: O def move(self, delta: int) -> 'StrandBuilder[StrandLabel, DomainLabel]': """ Extends this :any:`StrandBuilder` on the current helix to offset given by the current offset - plus `delta`, which adds a new :any:`Domain` to the :any:`Strand` being built unless immediately - preceded by another call to :py:meth:`StrandBuilder.move` or :py:meth:`StrandBuilder.to`. This is a + plus `delta`, which adds a new :any:`Domain` to the :any:`Strand` being built. This is a "relative move", whereas :py:meth:`StrandBuilder.to` and :py:meth:`StrandBuilder.update_to` are "absolute moves". From a94102cf0d72548f3d09163b606d451d82f596ff Mon Sep 17 00:00:00 2001 From: David Doty Date: Sat, 21 Nov 2020 10:14:14 -0800 Subject: [PATCH 23/23] fixed erroneous reference to method to() to be move() --- scadnano/scadnano.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scadnano/scadnano.py b/scadnano/scadnano.py index 89e28f62..703b0125 100644 --- a/scadnano/scadnano.py +++ b/scadnano/scadnano.py @@ -2099,7 +2099,7 @@ def move(self, delta: int) -> 'StrandBuilder[StrandLabel, DomainLabel]': If two instances of :py:meth:`StrandBuilder.move` are chained together, this creates two domains on the same helix. The two offsets must move in the same direction. In other words, if we call - ``.move(o1).to(o2)``, then ``o1`` and ``o2`` must be either both negative or both positive. + ``.move(o1).move(o2)``, then ``o1`` and ``o2`` must be either both negative or both positive. :param delta: Distance to new offset to extend to, compared to current offset.