diff --git a/mrdna/readers/.nfs000000000007668300005e88 b/mrdna/readers/.nfs000000000007668300005e88
new file mode 100644
index 0000000000000000000000000000000000000000..ed1479fd8b315ab84d5703322bf45d99a30438d1
Binary files /dev/null and b/mrdna/readers/.nfs000000000007668300005e88 differ
diff --git a/mrdna/readers/__init__.py b/mrdna/readers/__init__.py
index 1b61d775fcc4d8b7d5aa11dfd9a29bb9932471e8..8c0b352c5ad4b9b5ddc446475ee09778658b3d1e 100644
--- a/mrdna/readers/__init__.py
+++ b/mrdna/readers/__init__.py
@@ -11,6 +11,9 @@ def read_cadnano_input(json_file,sequence=None,**model_parameters):
     from .segmentmodel_from_cadnano import mrdna_model_from_cadnano
     
     return mrdna_model_from_cadnano(json_file,seq=sequence,**model_parameters)
+def read_scadnano(sc_file, **model_parameters):
+    from .segmentmodel_from_scadnano import mrdna_model_from_scadnano
+    return mrdna_model_from_scadnano(sc_file, **model_parameters)
 
 def read_vhelix(maya_file, **model_parameters):
     from .polygon_mesh import parse_maya_file, convert_maya_bases_to_segment_model
@@ -44,6 +47,5 @@ def read_atomic_pdb(pdb_file, **model_parameters):
     return SegmentModelFromPdb(pdb_file)
 
 def read_oxdna(coordinate_file, topology_file, virt2nuc=None, **model_parameters):
-    """ Idealized coordinate file: coordinates for detecting stacks and base pairs, defaults to coordinate_file """ 
     from .segmentmodel_from_oxdna_pinyi import mrdna_model_from_oxdna
     return mrdna_model_from_oxdna(coordinate_file, topology_file,virt2nuc, **model_parameters)
diff --git a/mrdna/readers/segmentmodel_from_cadnano.bak.py b/mrdna/readers/segmentmodel_from_cadnano.bak.py
new file mode 100644
index 0000000000000000000000000000000000000000..bfb56d9964fe0a45b3f72d62a8e833452892e79a
--- /dev/null
+++ b/mrdna/readers/segmentmodel_from_cadnano.bak.py
@@ -0,0 +1,225 @@
+# -*- coding: utf-8 -*-
+import numpy as np
+import os,sys
+from glob import glob
+import re
+import pandas as pd
+pd.options.mode.chained_assignment = None  # default='warn'
+from .segmentmodel_from_lists import model_from_basepair_stack_3prime
+
+from ..arbdmodel.coords import readArbdCoords, readAvgArbdCoords, rotationAboutAxis
+from ..segmentmodel import SegmentModel, SingleStrandedSegment, DoubleStrandedSegment
+from ..model.dna_sequence import m13 as m13seq
+import json
+import re
+import pdb
+
+
+
+## TODO: separate SegmentModel from ArbdModel so multiple parts can be combined
+## TODO: catch circular strands in "get_5prime" cadnano calls
+## TODO: handle special motifs
+##   - doubly-nicked helices
+##   - helices that should be stacked across an empty region (crossovers from and end in the helix to another end in the helix)
+##   - circular constructs
+
+
+def get_lattice(part):
+    lattice_type = None
+    _gt = part.getGridType()
+    try:
+        lattice_type = _gt.name.lower()
+    except:
+        if _gt == 1:
+            lattice_type = 'square'
+        elif _gt == 2:
+            lattice_type = 'honeycomb'
+        else:
+            print(lattice_type)
+    return lattice_type
+
+
+def read_json_file(filename):
+    import cadnano
+    from cadnano.document import Document
+
+    try:
+        with open(filename) as ch:
+            json_data = json.load(ch)
+    except:
+        with open(filename) as ch:
+            content = ""
+            for l in ch:
+                l = re.sub(r"'", r'"', l)
+                # https://stackoverflow.com/questions/4033633/handling-lazy-json-in-python-expecting-property-name
+                # l = re.sub(r"{\s*(\w)", r'{"\1', l)
+                # l = re.sub(r",\s*(\w)", r',"\1', l)
+                # l = re.sub(r"(\w):", r'\1":', l)
+                content += l+"\n"
+            json_data = json.loads(content)
+
+    try:
+        doc = Document()
+        cadnano.fileio.v3decode.decode(doc, json_data)
+        decoder = 3
+    except:
+        doc = Document()
+        cadnano.fileio.v2decode.decode(doc, json_data)
+        decoder = 2
+
+    parts = [p for p in doc.getParts()]
+    if len(parts) != 1:
+        raise Exception("Only documents containing a single cadnano part are implemented at this time.")
+    part = parts[0]
+
+    if decoder == 2:
+        """ It seems cadnano2.5 (as of ce6ff019) does not set the EulerZ for square lattice structures correctly, doing so here """
+        l = get_lattice(part)
+        if l == 'square':
+            for id_num in part.getIdNums():
+                if part.vh_properties.loc[id_num,'eulerZ'] == 0:
+                    part.vh_properties.loc[id_num,'eulerZ'] = 360*(6/10.5)
+        df=pd.DataFrame(json_data["vstrands"])
+        n_df=df.set_index("num")
+    return part
+
+def get_helix_angle(part, helix_id, indices):
+    """ Get "start_orientation" for helix """
+        # import ipdb
+        # ipdb.set_trace()
+
+    """ FROM CADNANO2.5
+    + angle is CCW
+    - angle is CW
+    Right handed DNA rotates clockwise from 5' to 3'
+    we use the convention the 5' end starts at 0 degrees
+    and it's pair is minor_groove_angle degrees away
+    direction, hence the minus signs.  eulerZ
+    """
+
+    hp, bpr, tpr, eulerZ, mgroove = part.vh_properties.loc[helix_id,
+                                                                    ['helical_pitch',
+                                                                     'bases_per_repeat',
+                                                                     'turns_per_repeat',
+                                                                     'eulerZ',
+                                                                     'minor_groove_angle']]
+    twist_per_base = tpr*360./bpr
+        # angle = eulerZ - twist_per_base*indices + 0.5*mgroove + 180
+    angle = eulerZ + twist_per_base*indices - 0.5*mgroove
+    return rotationAboutAxis(np.array((0,0,1)),angle)
+
+def gen_id_series(strand,part):
+    df=pd.DataFrame(columns=["vh","zid","fwd","stack_tuple","threeprime_tuple","x","y","z"],index=range(strand.totalLength()),dtype=object)
+    df["vh"]=strand._id_num
+    df["fwd"]=strand.isForward()
+    df["x"]=part.getVirtualHelixOrigin(strand._id_num)[0]*10
+    df["y"]=part.getVirtualHelixOrigin(strand._id_num)[1]*10
+    id_lo,id_hi=strand.idxs()
+    zids=[str(i) for i in range(id_lo,id_hi+1)]
+    insert_dict={}
+    insert_dict=dict([(j.idx(),j.length()) for j in strand.insertionsOnStrand()])
+    z=np.arange(id_lo,id_hi+1)
+    zids=[str(i) for i in range(id_lo,id_hi+1)]
+    z=list(np.arange(id_lo,id_hi+1))
+    zids=[str(i) for i in range(id_lo,id_hi+1)]
+    for insert_base in insert_dict:
+        z_ind=zids.index(str(insert_base))
+        z_val=insert_dict[insert_base]
+        z_pos_ind=z.index(insert_base)
+        zids.pop(z_ind)
+        z.pop(z_pos_ind)
+        if z_val!=-1:
+            #l=[str(insert_base)+"."+str(i) for i in range(z_val+1)]
+            l=list(range(z_val+1))
+            l.reverse()
+            for k in l:                
+                zids.insert(z_ind,str(insert_base)+"."+str(k))
+                z.insert(z_pos_ind,insert_base+k/(z_val+1))
+    df["zid"]=zids
+    df["z"]=np.array(z)*3.4
+    
+    
+    L=[(df["vh"][i],df["zid"][i],df["fwd"][i]) for i in df.index]
+    if strand.isForward()==True:
+        df["stack_tuple"]=L[1:]+[-1]
+        if strand.connection3p() is None:
+            df["threeprime_tuple"]=L[1:]+[-1]
+        else:
+            df["threeprime_tuple"]=L[1:]+[(strand.connection3p().idNum(),str(strand.connection3p().idx5Prime()),strand.connection3p().isForward())]
+        
+    
+    else:
+        df["stack_tuple"]=[-1]+L[0:-1]
+        if strand.connection3p() is None:
+            df["threeprime_tuple"]=[-1]+L[0:-1]
+        else:
+            df["threeprime_tuple"]=[(strand.connection3p().idNum(),str(strand.connection3p().idx5Prime()),strand.connection3p().isForward())]+L[0:-1]
+    ## cadnano 3.1 sequence assign is wrong if there is insertion or deletion. 
+    df["r"]=[np.array([df["x"][i],df["y"][i],df["z"][i]],dtype=np.float32) for i in df.index]
+    
+    return [pd.Series(df.loc[i]) for i in df.index]
+
+
+def gen_prop_table(part):
+    strand_set=[]
+    for i in part.getidNums():
+        fwd,rev=part.getStrandSets(i)
+        [strand_set.append(i) for i in fwd.strands()]
+        [strand_set.append(i) for i in rev.strands()]
+    id_series=[]
+    for i in strand_set:
+        id_series=id_series+gen_id_series(i,part)
+    
+    nt_prop=pd.DataFrame(id_series)
+    nt_prop.reset_index(inplace=True)
+    nt_prop["seq"]=-1
+    ind_tuple=list(zip(nt_prop["vh"],nt_prop["zid"],nt_prop["fwd"]))
+    stacks=[]
+    for i in list(nt_prop["stack_tuple"]):
+        if i ==-1:
+            stacks.append(i)
+        else:
+            stacks.append(ind_tuple.index(i))
+    nt_prop["stack"]=stacks
+    tprime=[]
+    for i in list(nt_prop["threeprime_tuple"]):
+        if i ==-1:
+            tprime.append(i)
+        else:
+            tprime.append(ind_tuple.index(i))
+    nt_prop["threeprime"]=tprime
+    vhzid=list(zip(nt_prop["vh"],nt_prop["zid"]))
+    nt_prop["orientation"]=[get_helix_angle(part, helix_id, int(float(indices))) for helix_id,indices in vhzid]
+    nt_prop=nt_prop.fillna(-1)
+    counter=-1
+    bp=-np.ones(len(nt_prop.index),dtype=int)
+    bp_map=dict(zip(ind_tuple,nt_prop.index))
+    for i,j,k in ind_tuple:
+        counter+=1
+        try:
+            bp[counter]=bp_map[(i,j,not(k))]
+        except:
+            pass
+    nt_prop["bp"]=bp
+
+    return nt_prop
+
+def mrdna_model_from_cadnano(json_file,seq=None,**model_parameters):
+    part=read_json_file(json_file)
+    
+    nt_prop=gen_prop_table(part)
+
+
+    if seq is None:
+        if nt_prop["seq"][0]==-1:
+            seq=None
+        else:
+            seq=nt_prop["seq"]
+    
+    r=np.array(list(nt_prop['r']))
+    bp=np.array(list(nt_prop['bp']))
+    three_prime=np.array((list(nt_prop["threeprime"])))
+    stack=np.array((list(nt_prop["stack"])))
+    orientation=np.array(list(nt_prop["orientation"]))
+    model = model_from_basepair_stack_3prime( r, bp, stack, three_prime, seq, orientation, **model_parameters )
+    return model
diff --git a/mrdna/readers/segmentmodel_from_cadnano.py b/mrdna/readers/segmentmodel_from_cadnano.py
index f8127e715c6cf43f558a5488d963f840b06c8e2f..bfb56d9964fe0a45b3f72d62a8e833452892e79a 100644
--- a/mrdna/readers/segmentmodel_from_cadnano.py
+++ b/mrdna/readers/segmentmodel_from_cadnano.py
@@ -171,7 +171,7 @@ def gen_prop_table(part):
         id_series=id_series+gen_id_series(i,part)
     
     nt_prop=pd.DataFrame(id_series)
-    nt_prop.reset_index(names=list(range(len(nt_prop.index))),inplace=True)
+    nt_prop.reset_index(inplace=True)
     nt_prop["seq"]=-1
     ind_tuple=list(zip(nt_prop["vh"],nt_prop["zid"],nt_prop["fwd"]))
     stacks=[]
diff --git a/mrdna/readers/segmentmodel_from_lists.py b/mrdna/readers/segmentmodel_from_lists.py
index 7e65b97b3a54b0dc72a558785cf2406fd247134d..c2571081f666f3e7ac05ca2ccc89693c06fcafc4 100644
--- a/mrdna/readers/segmentmodel_from_lists.py
+++ b/mrdna/readers/segmentmodel_from_lists.py
@@ -471,13 +471,9 @@ def model_from_basepair_stack_3prime(coordinate, basepair, stack, three_prime,
     model._reader_list_hmap = hmap
     model._reader_list_fwd = fwd
     model._reader_list_hrank = hrank
-    df=pd.DataFrame({"r":coordinate,"bp":basepair,"stack":stack,"threeprime":three_prime,"seq":sequence,"orientation":orientation,"fwd":fwd,"hmap":hmap,"hrank":hrank,})
     if sequence is None:
         for s in model.segments:
             s.randomize_unset_sequence()
- 
-    model._dataframe=df
-
     return model
 
 def model_from_pandas(df,coordinate_col="r",bp_col="bp",stack_col="stack",three_prime_col="threeprime",
diff --git a/mrdna/readers/segmentmodel_from_oxdna_pinyi.py b/mrdna/readers/segmentmodel_from_oxdna_pinyi.py
index 564065882e7bcc745f4c93a5b9a2a24789bba3dc..3e7f8c86bc9fb093fce7332303e34665849aef03 100644
--- a/mrdna/readers/segmentmodel_from_oxdna_pinyi.py
+++ b/mrdna/readers/segmentmodel_from_oxdna_pinyi.py
@@ -3,8 +3,8 @@ from .segmentmodel_from_lists import model_from_basepair_stack_3prime
 from ..arbdmodel.coords import rotationAboutAxis
 import pickle
 import pandas as pd
-
-from oxlibs import *
+import sys
+import mrdna.readers.libs as libs
 import numpy as np
 from scipy.spatial import distance_matrix
 pd.options.mode.chained_assignment = None  # default='warn'
@@ -89,10 +89,12 @@ def mrdna_model_from_oxdna(coordinate_file, topology_file,virt2nuc=None,get_nt_p
                     L.append(pd.Series({"index":index,"vh":vh,"zid":z,"strand":strand,"is_scaf":bool(is_scaf)}))
         return L
     def get_virt2nuc(virt2nuc,top_data):
-        vh_vb,pattern=pd.read_pickle(virt2nuc)
+        sys.modules["libs"]=libs
+        virt_pickle=open(virt2nuc,"rb")
+        vh_vb,pattern=pickle.load(virt_pickle)
         L1=_find_vh_vb_table(vh_vb._scaf,1)
         L2=_find_vh_vb_table(vh_vb._stap,0)
-        nt_prop=pd.DataFrame(L1+L2)
+        nt_prop=pd.DataFrame(L1+L2,dtype=object)
         nt_prop.set_index("index",inplace=True)
         nt_prop.sort_index(inplace=True)
         nt_prop["threeprime"]=top_data[2]
@@ -126,9 +128,8 @@ def mrdna_model_from_oxdna(coordinate_file, topology_file,virt2nuc=None,get_nt_p
         bp=nt_prop["bp"]
         stack=nt_prop["stack"]
         three_prime=nt_prop["threeprime"]
-        nt_prop["r"]=r
         nt_prop["orientation"]=orientation
-
+        nt_prop["r"]=list(r)
     except:
         ## Reverse direction so indices run 5'-to-3'
         top_data = [a[::-1] for a in top_data]
@@ -149,7 +150,7 @@ def mrdna_model_from_oxdna(coordinate_file, topology_file,virt2nuc=None,get_nt_p
         five_prime = len(r) - top_data[3] -1
         three_prime[three_prime >= len(r)] = -1
         five_prime[five_prime >= len(r)] = -1
-        nt_prop=pd.DataFrame({"r":r,"bp":bp,"stack":stack,"threeprime":three_prime, "seq":seq,"orientation":orientation})
+        nt_prop=pd.DataFrame({"r":list(r),"bp":list(bp),"stack":list(stack),"threeprime":list(three_prime), "seq":list(seq),"orientation":list(orientation)})
 
     def _debug_write_bonds():
         from ..arbdmodel import ParticleType, PointParticle, ArbdModel, Group
@@ -186,7 +187,6 @@ def mrdna_model_from_oxdna(coordinate_file, topology_file,virt2nuc=None,get_nt_p
 
     logger.info(f'mrdna_model_from_oxdna: num_bp, num_ss_nt, num_stacked: {np.sum(bp>=0)//2} {np.sum(bp<0)} {np.sum(stack >= 0)}')
 
-
     model = model_from_basepair_stack_3prime( r, bp, stack, three_prime, seq, orientation, **model_parameters )
      
     """
diff --git a/mrdna/readers/segmentmodel_from_scadnano.py b/mrdna/readers/segmentmodel_from_scadnano.py
index 7311227e03cba381200fa20bf36cad3122c4830b..da2d4c4fe4ab984432f6bf414b6ca002e9496590 100644
--- a/mrdna/readers/segmentmodel_from_scadnano.py
+++ b/mrdna/readers/segmentmodel_from_scadnano.py
@@ -85,9 +85,12 @@ def gen_strand(strand,design,group_index=0):
     strand_df["threeprime"]=list(strand_df.index[1:]+group_index)+[-1]
     stack=np.where(strand_df["stacked"],strand_df["threeprime"],-1)
     strand_df["stack"]=stack
-    if len(strand.dna_sequence)==len(strand_df.index):
-        strand_df["seq"]=list(strand.dna_sequence)
-    else:
+    try:
+        if len(strand.dna_sequence)==len(strand_df.index):
+            strand_df["seq"]=list(strand.dna_sequence)
+        else:
+            strand_df["seq"]=-1
+    except:
         strand_df["seq"]=-1
     strand_df["index"]=strand_df.index+group_index
     #strand_df["seg_index"]=index
@@ -128,10 +131,12 @@ def mrdna_model_from_scadnano(sc_file,seq=None,**model_parameters):
     bp=np.array(list(nt_prop['bp']))
     three_prime=np.array((list(nt_prop["threeprime"])))
     stack=np.array((list(nt_prop["stack"])))
+    
     if nt_prop["seq"][0]==-1:
         seq=None
     else:
         seq=nt_prop["seq"]
+
     orientation=[rotationAboutAxis(np.array((0,0,1)),i) for i in list(nt_prop["orientation_angle"])]
     model = model_from_basepair_stack_3prime( r, bp, stack, three_prime, seq, orientation, **model_parameters )
     model._dataframe=nt_prop
diff --git a/mrdna/readers/test.ipynb b/mrdna/readers/test.ipynb
deleted file mode 100644
index a3bd160b751ec4f98fab99afeb23a4076371dfd4..0000000000000000000000000000000000000000
--- a/mrdna/readers/test.ipynb
+++ /dev/null
@@ -1,4745 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "id": "03eb8540",
-   "metadata": {
-    "scrolled": true
-   },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "pip3 install termcolor\n"
-     ]
-    }
-   ],
-   "source": [
-    "import pandas as pd\n",
-    "import pickle\n",
-    "import numpy as np\n",
-    "import json\n",
-    "import re\n",
-    "import cadnano\n",
-    "from cadnano.document import Document\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "id": "cb40f6b8",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from cadnano.views.pathview import pathstyles"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "id": "ea7e8da0",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "             _\n",
-      " _____ ___ _| |___ ___\n",
-      "|     |  _| . |   | .'|\n",
-      "|_|_|_|_| |___|_|_|__,|  v1.0a.dev74  \n",
-      "it/its\n",
-      "\n"
-     ]
-    }
-   ],
-   "source": [
-    "import cadnano\n",
-    "from cadnano.document import Document\n",
-    "from mrdna.arbdmodel.coords import readArbdCoords, readAvgArbdCoords, rotationAboutAxis"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 15,
-   "id": "3a134bd9-0d8c-40b2-bf71-7b2310e09802",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "def get_lattice(part):\n",
-    "    lattice_type = None\n",
-    "    _gt = part.getGridType()\n",
-    "    try:\n",
-    "        lattice_type = _gt.name.lower()\n",
-    "    except:\n",
-    "        if _gt == 1:\n",
-    "            lattice_type = 'square'\n",
-    "        elif _gt == 2:\n",
-    "            lattice_type = 'honeycomb'\n",
-    "        else:\n",
-    "            print(lattice_type)\n",
-    "    return lattice_type\n",
-    "\n",
-    "\n",
-    "def read_json_file(filename):\n",
-    "    import cadnano\n",
-    "    from cadnano.document import Document\n",
-    "\n",
-    "    try:\n",
-    "        with open(filename) as ch:\n",
-    "            json_data = json.load(ch)\n",
-    "    except:\n",
-    "        with open(filename) as ch:\n",
-    "            content = \"\"\n",
-    "            for l in ch:\n",
-    "                l = re.sub(r\"'\", r'\"', l)\n",
-    "                # https://stackoverflow.com/questions/4033633/handling-lazy-json-in-python-expecting-property-name\n",
-    "                # l = re.sub(r\"{\\s*(\\w)\", r'{\"\\1', l)\n",
-    "                # l = re.sub(r\",\\s*(\\w)\", r',\"\\1', l)\n",
-    "                # l = re.sub(r\"(\\w):\", r'\\1\":', l)\n",
-    "                content += l+\"\\n\"\n",
-    "            json_data = json.loads(content)\n",
-    "\n",
-    "    try:\n",
-    "        doc = Document()\n",
-    "        cadnano.fileio.v3decode.decode(doc, json_data)\n",
-    "        decoder = 3\n",
-    "    except:\n",
-    "        doc = Document()\n",
-    "        cadnano.fileio.v2decode.decode(doc, json_data)\n",
-    "        decoder = 2\n",
-    "\n",
-    "    parts = [p for p in doc.getParts()]\n",
-    "    if len(parts) != 1:\n",
-    "        raise Exception(\"Only documents containing a single cadnano part are implemented at this time.\")\n",
-    "    part = parts[0]\n",
-    "\n",
-    "    if decoder == 2:\n",
-    "        \"\"\" It seems cadnano2.5 (as of ce6ff019) does not set the EulerZ for square lattice structures correctly, doing so here \"\"\"\n",
-    "        l = get_lattice(part)\n",
-    "        if l == 'square':\n",
-    "            for id_num in part.getIdNums():\n",
-    "                if part.vh_properties.loc[id_num,'eulerZ'] == 0:\n",
-    "                    part.vh_properties.loc[id_num,'eulerZ'] = 360*(6/10.5)\n",
-    "        df=pd.DataFrame(json_data[\"vstrands\"])\n",
-    "        n_df=df.set_index(\"num\")\n",
-    "    return part\n",
-    "\n",
-    "def get_helix_angle(part, helix_id, indices):\n",
-    "    \"\"\" Get \"start_orientation\" for helix \"\"\"\n",
-    "        # import ipdb\n",
-    "        # ipdb.set_trace()\n",
-    "\n",
-    "    \"\"\" FROM CADNANO2.5\n",
-    "    + angle is CCW\n",
-    "    - angle is CW\n",
-    "    Right handed DNA rotates clockwise from 5' to 3'\n",
-    "    we use the convention the 5' end starts at 0 degrees\n",
-    "    and it's pair is minor_groove_angle degrees away\n",
-    "    direction, hence the minus signs.  eulerZ\n",
-    "    \"\"\"\n",
-    "\n",
-    "    hp, bpr, tpr, eulerZ, mgroove = part.vh_properties.loc[helix_id,\n",
-    "                                                                    ['helical_pitch',\n",
-    "                                                                     'bases_per_repeat',\n",
-    "                                                                     'turns_per_repeat',\n",
-    "                                                                     'eulerZ',\n",
-    "                                                                     'minor_groove_angle']]\n",
-    "    twist_per_base = tpr*360./bpr\n",
-    "        # angle = eulerZ - twist_per_base*indices + 0.5*mgroove + 180\n",
-    "    angle = eulerZ + twist_per_base*indices - 0.5*mgroove\n",
-    "    return angle\n",
-    "\n",
-    "def gen_id_series(strand,part):\n",
-    "    df=pd.DataFrame(columns=[\"vh\",\"zid\",\"fwd\",\"stack_tuple\",\"threeprime_tuple\",\"x\",\"y\",\"z\"],index=range(strand.totalLength()),dtype=object)\n",
-    "    df[\"vh\"]=strand._id_num\n",
-    "    df[\"fwd\"]=strand.isForward()\n",
-    "    df[\"x\"]=part.getVirtualHelixOrigin(strand._id_num)[0]*10\n",
-    "    df[\"y\"]=part.getVirtualHelixOrigin(strand._id_num)[1]*10\n",
-    "    id_lo,id_hi=strand.idxs()\n",
-    "    zids=[str(i) for i in range(id_lo,id_hi+1)]\n",
-    "    insert_dict={}\n",
-    "    insert_dict=dict([(j.idx(),j.length()) for j in strand.insertionsOnStrand()])\n",
-    "    z=np.arange(id_lo,id_hi+1)\n",
-    "    zids=[str(i) for i in range(id_lo,id_hi+1)]\n",
-    "    z=list(np.arange(id_lo,id_hi+1))\n",
-    "    zids=[str(i) for i in range(id_lo,id_hi+1)]\n",
-    "    for insert_base in insert_dict:\n",
-    "        z_ind=zids.index(str(insert_base))\n",
-    "        z_val=insert_dict[insert_base]\n",
-    "        z_pos_ind=z.index(insert_base)\n",
-    "        zids.pop(z_ind)\n",
-    "        z.pop(z_pos_ind)\n",
-    "        if z_val!=-1:\n",
-    "            #l=[str(insert_base)+\".\"+str(i) for i in range(z_val+1)]\n",
-    "            l=list(range(z_val+1))\n",
-    "            l.reverse()\n",
-    "            for k in l:                \n",
-    "                zids.insert(z_ind,str(insert_base)+\".\"+str(k))\n",
-    "                z.insert(z_pos_ind,insert_base+k/(z_val+1))\n",
-    "    df[\"zid\"]=zids\n",
-    "    df[\"z\"]=np.array(z)*3.4\n",
-    "    \n",
-    "    \n",
-    "    L=[(df[\"vh\"][i],df[\"zid\"][i],df[\"fwd\"][i]) for i in df.index]\n",
-    "    if strand.isForward()==True:\n",
-    "        df[\"stack_tuple\"]=L[1:]+[-1]\n",
-    "        if strand.connection3p() is None:\n",
-    "            df[\"threeprime_tuple\"]=L[1:]+[-1]\n",
-    "        else:\n",
-    "            df[\"threeprime_tuple\"]=L[1:]+[(strand.connection3p().idNum(),str(strand.connection3p().idx5Prime()),strand.connection3p().isForward())]\n",
-    "        \n",
-    "    \n",
-    "    else:\n",
-    "        df[\"stack_tuple\"]=[-1]+L[0:-1]\n",
-    "        if strand.connection3p() is None:\n",
-    "            df[\"threeprime_tuple\"]=[-1]+L[0:-1]\n",
-    "        else:\n",
-    "            df[\"threeprime_tuple\"]=[(strand.connection3p().idNum(),str(strand.connection3p().idx5Prime()),strand.connection3p().isForward())]+L[0:-1]\n",
-    "    ## cadnano 3.1 sequence assign is wrong if there is insertion or deletion. \n",
-    "    df[\"r\"]=[np.array([df[\"x\"][i],df[\"y\"][i],df[\"z\"][i]],dtype=np.float32) for i in df.index]\n",
-    "    \n",
-    "    return [pd.Series(df.loc[i]) for i in df.index]\n",
-    "\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 18,
-   "id": "04c497ae",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "def gen_prop_table(part):\n",
-    "    strand_set=[]\n",
-    "    for i in part.getidNums():\n",
-    "        fwd,rev=part.getStrandSets(i)\n",
-    "        [strand_set.append(i) for i in fwd.strands()]\n",
-    "        [strand_set.append(i) for i in rev.strands()]\n",
-    "    id_series=[]\n",
-    "    for i in strand_set:\n",
-    "        id_series=id_series+gen_id_series(i,part)\n",
-    "    \n",
-    "    nt_prop=pd.DataFrame(id_series)\n",
-    "    nt_prop.reset_index(inplace=True)\n",
-    "    nt_prop[\"seq\"]=-1\n",
-    "    ind_tuple=list(zip(nt_prop[\"vh\"],nt_prop[\"zid\"],nt_prop[\"fwd\"]))\n",
-    "    stacks=[]\n",
-    "    for i in list(nt_prop[\"stack_tuple\"]):\n",
-    "        if i ==-1:\n",
-    "            stacks.append(i)\n",
-    "        else:\n",
-    "            stacks.append(ind_tuple.index(i))\n",
-    "    nt_prop[\"stack\"]=stacks\n",
-    "    tprime=[]\n",
-    "    for i in list(nt_prop[\"threeprime_tuple\"]):\n",
-    "        if i ==-1:\n",
-    "            tprime.append(i)\n",
-    "        else:\n",
-    "            tprime.append(ind_tuple.index(i))\n",
-    "    nt_prop[\"threeprime\"]=tprime\n",
-    "    vhzid=list(zip(nt_prop[\"vh\"],nt_prop[\"zid\"]))\n",
-    "    nt_prop[\"orientation\"]=[get_helix_angle(part, helix_id, int(float(indices))) for helix_id,indices in vhzid]\n",
-    "    nt_prop=nt_prop.fillna(-1)\n",
-    "    counter=-1\n",
-    "    bp=-np.ones(len(nt_prop.index),dtype=int)\n",
-    "    bp_map=dict(zip(ind_tuple,nt_prop.index))\n",
-    "    for i,j,k in ind_tuple:\n",
-    "        counter+=1\n",
-    "        try:\n",
-    "            bp[counter]=bp_map[(i,j,not(k))]\n",
-    "        except:\n",
-    "            pass\n",
-    "    nt_prop[\"bp\"]=bp\n",
-    "\n",
-    "    return nt_prop"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 19,
-   "id": "11b0f5de-80f6-4845-b97f-a9d31e7be90a",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "<div>\n",
-       "<style scoped>\n",
-       "    .dataframe tbody tr th:only-of-type {\n",
-       "        vertical-align: middle;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe tbody tr th {\n",
-       "        vertical-align: top;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe thead th {\n",
-       "        text-align: right;\n",
-       "    }\n",
-       "</style>\n",
-       "<table border=\"1\" class=\"dataframe\">\n",
-       "  <thead>\n",
-       "    <tr style=\"text-align: right;\">\n",
-       "      <th></th>\n",
-       "      <th>index</th>\n",
-       "      <th>vh</th>\n",
-       "      <th>zid</th>\n",
-       "      <th>fwd</th>\n",
-       "      <th>stack_tuple</th>\n",
-       "      <th>threeprime_tuple</th>\n",
-       "      <th>x</th>\n",
-       "      <th>y</th>\n",
-       "      <th>z</th>\n",
-       "      <th>r</th>\n",
-       "      <th>seq</th>\n",
-       "      <th>stack</th>\n",
-       "      <th>threeprime</th>\n",
-       "      <th>orientation</th>\n",
-       "      <th>bp</th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>0</th>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>5</td>\n",
-       "      <td>True</td>\n",
-       "      <td>(0, 6, True)</td>\n",
-       "      <td>(0, 6, True)</td>\n",
-       "      <td>0.000000</td>\n",
-       "      <td>22.50</td>\n",
-       "      <td>17.0</td>\n",
-       "      <td>[0.0, 22.5, 17.0]</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>1</td>\n",
-       "      <td>1</td>\n",
-       "      <td>81.428571</td>\n",
-       "      <td>38</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>1</th>\n",
-       "      <td>1</td>\n",
-       "      <td>0</td>\n",
-       "      <td>6</td>\n",
-       "      <td>True</td>\n",
-       "      <td>(0, 7, True)</td>\n",
-       "      <td>(0, 7, True)</td>\n",
-       "      <td>0.000000</td>\n",
-       "      <td>22.50</td>\n",
-       "      <td>20.4</td>\n",
-       "      <td>[0.0, 22.5, 20.4]</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>2</td>\n",
-       "      <td>2</td>\n",
-       "      <td>115.714286</td>\n",
-       "      <td>39</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>2</th>\n",
-       "      <td>2</td>\n",
-       "      <td>0</td>\n",
-       "      <td>7</td>\n",
-       "      <td>True</td>\n",
-       "      <td>(0, 8, True)</td>\n",
-       "      <td>(0, 8, True)</td>\n",
-       "      <td>0.000000</td>\n",
-       "      <td>22.50</td>\n",
-       "      <td>23.8</td>\n",
-       "      <td>[0.0, 22.5, 23.8]</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>3</td>\n",
-       "      <td>3</td>\n",
-       "      <td>150.000000</td>\n",
-       "      <td>40</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>3</th>\n",
-       "      <td>3</td>\n",
-       "      <td>0</td>\n",
-       "      <td>8</td>\n",
-       "      <td>True</td>\n",
-       "      <td>(0, 9, True)</td>\n",
-       "      <td>(0, 9, True)</td>\n",
-       "      <td>0.000000</td>\n",
-       "      <td>22.50</td>\n",
-       "      <td>27.2</td>\n",
-       "      <td>[0.0, 22.5, 27.2]</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>4</td>\n",
-       "      <td>4</td>\n",
-       "      <td>184.285714</td>\n",
-       "      <td>41</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>4</th>\n",
-       "      <td>4</td>\n",
-       "      <td>0</td>\n",
-       "      <td>9</td>\n",
-       "      <td>True</td>\n",
-       "      <td>(0, 10, True)</td>\n",
-       "      <td>(0, 10, True)</td>\n",
-       "      <td>0.000000</td>\n",
-       "      <td>22.50</td>\n",
-       "      <td>30.6</td>\n",
-       "      <td>[0.0, 22.5, 30.6]</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>5</td>\n",
-       "      <td>5</td>\n",
-       "      <td>218.571429</td>\n",
-       "      <td>42</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>...</th>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>410</th>\n",
-       "      <td>12</td>\n",
-       "      <td>5</td>\n",
-       "      <td>35</td>\n",
-       "      <td>False</td>\n",
-       "      <td>(5, 34, False)</td>\n",
-       "      <td>(5, 34, False)</td>\n",
-       "      <td>19.485574</td>\n",
-       "      <td>11.25</td>\n",
-       "      <td>119.0</td>\n",
-       "      <td>[19.485573, 11.25, 119.0]</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>409</td>\n",
-       "      <td>409</td>\n",
-       "      <td>1110.000000</td>\n",
-       "      <td>375</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>411</th>\n",
-       "      <td>13</td>\n",
-       "      <td>5</td>\n",
-       "      <td>36</td>\n",
-       "      <td>False</td>\n",
-       "      <td>(5, 35, False)</td>\n",
-       "      <td>(5, 35, False)</td>\n",
-       "      <td>19.485574</td>\n",
-       "      <td>11.25</td>\n",
-       "      <td>122.4</td>\n",
-       "      <td>[19.485573, 11.25, 122.4]</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>410</td>\n",
-       "      <td>410</td>\n",
-       "      <td>1144.285714</td>\n",
-       "      <td>376</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>412</th>\n",
-       "      <td>14</td>\n",
-       "      <td>5</td>\n",
-       "      <td>37</td>\n",
-       "      <td>False</td>\n",
-       "      <td>(5, 36, False)</td>\n",
-       "      <td>(5, 36, False)</td>\n",
-       "      <td>19.485574</td>\n",
-       "      <td>11.25</td>\n",
-       "      <td>125.8</td>\n",
-       "      <td>[19.485573, 11.25, 125.8]</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>411</td>\n",
-       "      <td>411</td>\n",
-       "      <td>1178.571429</td>\n",
-       "      <td>377</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>413</th>\n",
-       "      <td>15</td>\n",
-       "      <td>5</td>\n",
-       "      <td>38</td>\n",
-       "      <td>False</td>\n",
-       "      <td>(5, 37, False)</td>\n",
-       "      <td>(5, 37, False)</td>\n",
-       "      <td>19.485574</td>\n",
-       "      <td>11.25</td>\n",
-       "      <td>129.2</td>\n",
-       "      <td>[19.485573, 11.25, 129.2]</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>412</td>\n",
-       "      <td>412</td>\n",
-       "      <td>1212.857143</td>\n",
-       "      <td>378</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>414</th>\n",
-       "      <td>16</td>\n",
-       "      <td>5</td>\n",
-       "      <td>39</td>\n",
-       "      <td>False</td>\n",
-       "      <td>(5, 38, False)</td>\n",
-       "      <td>(5, 38, False)</td>\n",
-       "      <td>19.485574</td>\n",
-       "      <td>11.25</td>\n",
-       "      <td>132.6</td>\n",
-       "      <td>[19.485573, 11.25, 132.6]</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>413</td>\n",
-       "      <td>413</td>\n",
-       "      <td>1247.142857</td>\n",
-       "      <td>379</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "<p>415 rows × 15 columns</p>\n",
-       "</div>"
-      ],
-      "text/plain": [
-       "     index  vh zid    fwd     stack_tuple threeprime_tuple          x      y  \\\n",
-       "0        0   0   5   True    (0, 6, True)     (0, 6, True)   0.000000  22.50   \n",
-       "1        1   0   6   True    (0, 7, True)     (0, 7, True)   0.000000  22.50   \n",
-       "2        2   0   7   True    (0, 8, True)     (0, 8, True)   0.000000  22.50   \n",
-       "3        3   0   8   True    (0, 9, True)     (0, 9, True)   0.000000  22.50   \n",
-       "4        4   0   9   True   (0, 10, True)    (0, 10, True)   0.000000  22.50   \n",
-       "..     ...  ..  ..    ...             ...              ...        ...    ...   \n",
-       "410     12   5  35  False  (5, 34, False)   (5, 34, False)  19.485574  11.25   \n",
-       "411     13   5  36  False  (5, 35, False)   (5, 35, False)  19.485574  11.25   \n",
-       "412     14   5  37  False  (5, 36, False)   (5, 36, False)  19.485574  11.25   \n",
-       "413     15   5  38  False  (5, 37, False)   (5, 37, False)  19.485574  11.25   \n",
-       "414     16   5  39  False  (5, 38, False)   (5, 38, False)  19.485574  11.25   \n",
-       "\n",
-       "         z                          r  seq  stack  threeprime  orientation  \\\n",
-       "0     17.0          [0.0, 22.5, 17.0]   -1      1           1    81.428571   \n",
-       "1     20.4          [0.0, 22.5, 20.4]   -1      2           2   115.714286   \n",
-       "2     23.8          [0.0, 22.5, 23.8]   -1      3           3   150.000000   \n",
-       "3     27.2          [0.0, 22.5, 27.2]   -1      4           4   184.285714   \n",
-       "4     30.6          [0.0, 22.5, 30.6]   -1      5           5   218.571429   \n",
-       "..     ...                        ...  ...    ...         ...          ...   \n",
-       "410  119.0  [19.485573, 11.25, 119.0]   -1    409         409  1110.000000   \n",
-       "411  122.4  [19.485573, 11.25, 122.4]   -1    410         410  1144.285714   \n",
-       "412  125.8  [19.485573, 11.25, 125.8]   -1    411         411  1178.571429   \n",
-       "413  129.2  [19.485573, 11.25, 129.2]   -1    412         412  1212.857143   \n",
-       "414  132.6  [19.485573, 11.25, 132.6]   -1    413         413  1247.142857   \n",
-       "\n",
-       "      bp  \n",
-       "0     38  \n",
-       "1     39  \n",
-       "2     40  \n",
-       "3     41  \n",
-       "4     42  \n",
-       "..   ...  \n",
-       "410  375  \n",
-       "411  376  \n",
-       "412  377  \n",
-       "413  378  \n",
-       "414  379  \n",
-       "\n",
-       "[415 rows x 15 columns]"
-      ]
-     },
-     "execution_count": 19,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "gen_prop_table(p)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "f2116b88",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "import mrdna\n",
-    "from mrdna.readers import read_list"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 29,
-   "id": "4c954133",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "(415,)"
-      ]
-     },
-     "execution_count": 29,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "np.array(list(nt_prop['bp'])).shape"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 560,
-   "id": "5ee54071",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "(array([   12,    13,    14, ..., 13920, 13921, 13922]),)"
-      ]
-     },
-     "execution_count": 560,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "np.where(np.array(nt_prop[\"bp\"])!=-1)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 21,
-   "id": "e1588c54",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "<div>\n",
-       "<style scoped>\n",
-       "    .dataframe tbody tr th:only-of-type {\n",
-       "        vertical-align: middle;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe tbody tr th {\n",
-       "        vertical-align: top;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe thead th {\n",
-       "        text-align: right;\n",
-       "    }\n",
-       "</style>\n",
-       "<table border=\"1\" class=\"dataframe\">\n",
-       "  <thead>\n",
-       "    <tr style=\"text-align: right;\">\n",
-       "      <th></th>\n",
-       "      <th>vh</th>\n",
-       "      <th>zid</th>\n",
-       "      <th>is_scaf</th>\n",
-       "      <th>r</th>\n",
-       "      <th>bp</th>\n",
-       "      <th>stack</th>\n",
-       "      <th>threeprime</th>\n",
-       "      <th>seq</th>\n",
-       "      <th>orientation</th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>0</th>\n",
-       "      <td>0</td>\n",
-       "      <td>5</td>\n",
-       "      <td>True</td>\n",
-       "      <td>[0.0, 2.25, 1.7000000000000002]</td>\n",
-       "      <td>213</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>1</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>[[0.14904226617617466, -0.9888308262251284, 0....</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>1</th>\n",
-       "      <td>0</td>\n",
-       "      <td>6</td>\n",
-       "      <td>True</td>\n",
-       "      <td>[0.0, 2.25, 2.04]</td>\n",
-       "      <td>214</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>2</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>[[-0.4338837391175583, -0.900968867902419, 0.0...</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>2</th>\n",
-       "      <td>0</td>\n",
-       "      <td>7</td>\n",
-       "      <td>True</td>\n",
-       "      <td>[0.0, 2.25, 2.3800000000000003]</td>\n",
-       "      <td>215</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>3</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>[[-0.8660254037844388, -0.49999999999999994, 0...</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>3</th>\n",
-       "      <td>0</td>\n",
-       "      <td>8</td>\n",
-       "      <td>True</td>\n",
-       "      <td>[0.0, 2.25, 2.72]</td>\n",
-       "      <td>216</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>4</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>[[-0.9972037971811805, 0.07473009358642399, 0....</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>4</th>\n",
-       "      <td>0</td>\n",
-       "      <td>9</td>\n",
-       "      <td>True</td>\n",
-       "      <td>[0.0, 2.25, 3.06]</td>\n",
-       "      <td>217</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>5</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>[[-0.7818314824680299, 0.6234898018587334, 0.0...</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>...</th>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "      <td>...</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>410</th>\n",
-       "      <td>5</td>\n",
-       "      <td>35</td>\n",
-       "      <td>False</td>\n",
-       "      <td>[1.948557375, 1.125, 11.9]</td>\n",
-       "      <td>205</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>411</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>[[0.8660254037844375, -0.5000000000000019, 0.0...</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>411</th>\n",
-       "      <td>5</td>\n",
-       "      <td>36</td>\n",
-       "      <td>False</td>\n",
-       "      <td>[1.948557375, 1.125, 12.24]</td>\n",
-       "      <td>206</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>412</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>[[0.4338837391175605, -0.900968867902418, 0.0]...</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>412</th>\n",
-       "      <td>5</td>\n",
-       "      <td>37</td>\n",
-       "      <td>False</td>\n",
-       "      <td>[1.948557375, 1.125, 12.58]</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>413</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>[[-0.14904226617617078, -0.9888308262251292, 0...</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>413</th>\n",
-       "      <td>5</td>\n",
-       "      <td>38</td>\n",
-       "      <td>False</td>\n",
-       "      <td>[1.948557375, 1.125, 12.920000000000002]</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>414</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>[[-0.6801727377709186, -0.7330518718298275, 0....</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>414</th>\n",
-       "      <td>5</td>\n",
-       "      <td>39</td>\n",
-       "      <td>False</td>\n",
-       "      <td>[1.948557375, 1.125, 13.260000000000002]</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>-1</td>\n",
-       "      <td>[[-0.9749279121818233, -0.222520933956317, 0.0...</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "<p>415 rows × 9 columns</p>\n",
-       "</div>"
-      ],
-      "text/plain": [
-       "     vh  zid  is_scaf                                         r   bp  stack  \\\n",
-       "0     0    5     True           [0.0, 2.25, 1.7000000000000002]  213     -1   \n",
-       "1     0    6     True                         [0.0, 2.25, 2.04]  214     -1   \n",
-       "2     0    7     True           [0.0, 2.25, 2.3800000000000003]  215     -1   \n",
-       "3     0    8     True                         [0.0, 2.25, 2.72]  216     -1   \n",
-       "4     0    9     True                         [0.0, 2.25, 3.06]  217     -1   \n",
-       "..   ..  ...      ...                                       ...  ...    ...   \n",
-       "410   5   35    False                [1.948557375, 1.125, 11.9]  205     -1   \n",
-       "411   5   36    False               [1.948557375, 1.125, 12.24]  206     -1   \n",
-       "412   5   37    False               [1.948557375, 1.125, 12.58]   -1     -1   \n",
-       "413   5   38    False  [1.948557375, 1.125, 12.920000000000002]   -1     -1   \n",
-       "414   5   39    False  [1.948557375, 1.125, 13.260000000000002]   -1     -1   \n",
-       "\n",
-       "     threeprime  seq                                        orientation  \n",
-       "0             1   -1  [[0.14904226617617466, -0.9888308262251284, 0....  \n",
-       "1             2   -1  [[-0.4338837391175583, -0.900968867902419, 0.0...  \n",
-       "2             3   -1  [[-0.8660254037844388, -0.49999999999999994, 0...  \n",
-       "3             4   -1  [[-0.9972037971811805, 0.07473009358642399, 0....  \n",
-       "4             5   -1  [[-0.7818314824680299, 0.6234898018587334, 0.0...  \n",
-       "..          ...  ...                                                ...  \n",
-       "410         411   -1  [[0.8660254037844375, -0.5000000000000019, 0.0...  \n",
-       "411         412   -1  [[0.4338837391175605, -0.900968867902418, 0.0]...  \n",
-       "412         413   -1  [[-0.14904226617617078, -0.9888308262251292, 0...  \n",
-       "413         414   -1  [[-0.6801727377709186, -0.7330518718298275, 0....  \n",
-       "414          -1   -1  [[-0.9749279121818233, -0.222520933956317, 0.0...  \n",
-       "\n",
-       "[415 rows x 9 columns]"
-      ]
-     },
-     "execution_count": 21,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "nt_prop"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 468,
-   "id": "156dcda2",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "scaf_id=[nttype(vslist['scaf'][i]) for i in vslist.index]\n",
-    "stap_id=[nttype(vslist['stap'][i]) for i in vslist.index]\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 500,
-   "id": "6413d856",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "1"
-      ]
-     },
-     "execution_count": 500,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "nttype(vslist[\"scaf\"][30])[146]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 498,
-   "id": "fe8797db",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "0"
-      ]
-     },
-     "execution_count": 498,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "vhi,zidi=np.where(np.array(scaf_id)==1)\n",
-    "scaf_id[30][146]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 480,
-   "id": "9f1b975f",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "True"
-      ]
-     },
-     "execution_count": 480,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "scaf_id[30][146]==np.array(scaf_id)[0][9]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 549,
-   "id": "a16f3fd0",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "Int64Index([ 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,\n",
-       "            ...\n",
-       "            39, 39, 39, 39, 39, 39, 39, 39, 39, 39],\n",
-       "           dtype='int64', name='num', length=7560)"
-      ]
-     },
-     "execution_count": 549,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "def nttype(scafs):\n",
-    "    def judge(i):\n",
-    "        if i ==[-1,-1,-1,-1]:\n",
-    "            return 0\n",
-    "        else: return 1\n",
-    "    n=np.array([judge(i) for i in scafs])\n",
-    "    return n\n",
-    "d={}\n",
-    "vslist.index[vhi]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 544,
-   "id": "b9f25d41",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "(array([7394, 7395, 7396, 7397, 7398, 7399, 7400, 7401, 7402, 7403, 7404,\n",
-       "        7405, 7406, 7407, 7408, 7409, 7410, 7411, 7412, 7413, 7414, 7415,\n",
-       "        7416, 7417, 7418, 7419, 7420, 7421, 7422, 7423, 7424, 7425, 7426,\n",
-       "        7427, 7428, 7429, 7430, 7431, 7432, 7433]),)"
-      ]
-     },
-     "execution_count": 544,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "np.where(vslist.index[vhi]!=vhi)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 550,
-   "id": "976095ce",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "vh                                                            29\n",
-       "zid                                                           83\n",
-       "is_scaf                                                     True\n",
-       "r                    [-17.537016375, 28.125, 28.220000000000002]\n",
-       "bp                                                            -1\n",
-       "stack                                                         -1\n",
-       "threeprime                                                    -1\n",
-       "seq                                                           -1\n",
-       "orientation    [[-0.5633200580636211, 0.8262387743159955, 0.0...\n",
-       "Name: 7394, dtype: object"
-      ]
-     },
-     "execution_count": 550,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "nt_prop.loc[7394]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 548,
-   "id": "ac8f5067",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "Int64Index([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,\n",
-       "            17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 29, 31, 32, 33,\n",
-       "            34, 35, 36, 37, 38, 39, 41, 40, 42, 44, 46, 48, 50],\n",
-       "           dtype='int64', name='num')"
-      ]
-     },
-     "execution_count": 548,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "vslist.index"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 527,
-   "id": "1006fc48",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "(array([7394, 7395, 7396, 7397, 7398, 7399, 7400, 7401, 7402, 7403, 7404,\n",
-       "        7405, 7406, 7407, 7408, 7409, 7410, 7411, 7412, 7413, 7414, 7415,\n",
-       "        7416, 7417, 7418, 7419, 7420, 7421, 7422, 7423, 7424, 7425, 7426,\n",
-       "        7427, 7428, 7429, 7430, 7431, 7432, 7433]),)"
-      ]
-     },
-     "execution_count": 527,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "n=list(nt_prop[\"zid\"])\n",
-    "np.where(np.array(list(nt_prop[\"vh\"]))==29)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 503,
-   "id": "09c7e7d4",
-   "metadata": {},
-   "outputs": [
-    {
-     "ename": "ValueError",
-     "evalue": "((30, 146), True) is not in list",
-     "output_type": "error",
-     "traceback": [
-      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
-      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
-      "\u001b[0;32m<ipython-input-503-1b9956d4cdaf>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0mtprime_list\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mones\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnt_prop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindex2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m30\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m146\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
-      "\u001b[0;31mValueError\u001b[0m: ((30, 146), True) is not in list"
-     ]
-    }
-   ],
-   "source": [
-    "vhzid=list(zip(nt_prop[\"vh\"],nt_prop[\"zid\"]))\n",
-    "index2=list(zip(vhzid,nt_prop[\"is_scaf\"]))\n",
-    "tprime_list=-np.ones(len(nt_prop.index),dtype=int)\n",
-    "   \n",
-    "print(index2.index(((30,146),(True))))"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 537,
-   "id": "5f0c5266",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "11 135 30 146 3010\n"
-     ]
-    },
-    {
-     "ename": "ValueError",
-     "evalue": "((30, 146), True) is not in list",
-     "output_type": "error",
-     "traceback": [
-      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
-      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
-      "\u001b[0;32m<ipython-input-537-f07d5cbf0867>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      6\u001b[0m             \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mm\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0ml\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      7\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m!=\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m!=\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m             \u001b[0mn\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mindex2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      9\u001b[0m             \u001b[0mtprime_list\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     10\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;31mValueError\u001b[0m: ((30, 146), True) is not in list"
-     ]
-    }
-   ],
-   "source": [
-    "  \n",
-    "for i in range(len(nt_prop.index)):\n",
-    "    ((m,n),p)=list(zip(vhzid,nt_prop[\"is_scaf\"]))[i]\n",
-    "    if p==True:\n",
-    "        k,l=(vslist[\"scaf\"][m])[n][2:]\n",
-    "        if k==30 and l==146:\n",
-    "            print(m,n,k,l,i)\n",
-    "        if k!=-1 and l!=-1:\n",
-    "            n=index2.index(((k,l),True))\n",
-    "            tprime_list[i]=int(n)\n",
-    "\n",
-    "    else:\n",
-    "        k,l=(vslist[\"stap\"][m])[n][2:]\n",
-    "        if k!=-1 and l!=-1:\n",
-    "            n=index2.index(((k,l),False))\n",
-    "            tprime_list[i]=int(n)\n",
-    "nt_prop[\"threeprime\"]=tprime_list\n",
-    "(n,)=np.where(nt_prop[\"threeprime\"]==-1)\n",
-    "stackid=nt_prop[\"bp\"][[list(nt_prop[\"threeprime\"]).index(i) for i in n]]\n",
-    "nt_prop[\"stack\"][stackid.index[np.where(np.array(stackid)!=-1)]]=nt_prop[\"threeprime\"][stackid.index[np.where(np.array(stackid)!=-1)]]\n",
-    "    ## Todo: sequence   "
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 491,
-   "id": "fec987da",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "[11, 135, 30, 147]"
-      ]
-     },
-     "execution_count": 491,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "list(vslist.loc[30][\"scaf\"])[146]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 493,
-   "id": "f332ad87",
-   "metadata": {},
-   "outputs": [
-    {
-     "ename": "ValueError",
-     "evalue": "(30, 146) is not in list",
-     "output_type": "error",
-     "traceback": [
-      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
-      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
-      "\u001b[0;32m<ipython-input-493-d1dd239124c3>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mvhzid\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m30\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m146\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
-      "\u001b[0;31mValueError\u001b[0m: (30, 146) is not in list"
-     ]
-    }
-   ],
-   "source": [
-    "vhzid.index((30,146))"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "id": "dd3cd839",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "df=pd.DataFrame(data=d)\n",
-    "df=df.set_index(\"num\")"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "41b3d9af",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 18,
-   "id": "9ec18edc",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "def get_lattice(part):\n",
-    "    lattice_type = None\n",
-    "    _gt = part.getGridType()\n",
-    "    try:\n",
-    "        lattice_type = _gt.name.lower()\n",
-    "    except:\n",
-    "        if _gt == 1:\n",
-    "            lattice_type = 'square'\n",
-    "        elif _gt == 2:\n",
-    "            lattice_type = 'honeycomb'\n",
-    "        else:\n",
-    "            print(\"WARNING: unable to determine cadnano part lattice type\")\n",
-    "    return lattice_type\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 13,
-   "id": "2fa31a78",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Found cadnano version 2 file\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "NucleicAcidPart_-1_2800"
-      ]
-     },
-     "execution_count": 13,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "p=read_json_file(\"test/test.json\")\n",
-    "p"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 441,
-   "id": "64eb309f",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "<div>\n",
-       "<style scoped>\n",
-       "    .dataframe tbody tr th:only-of-type {\n",
-       "        vertical-align: middle;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe tbody tr th {\n",
-       "        vertical-align: top;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe thead th {\n",
-       "        text-align: right;\n",
-       "    }\n",
-       "</style>\n",
-       "<table border=\"1\" class=\"dataframe\">\n",
-       "  <thead>\n",
-       "    <tr style=\"text-align: right;\">\n",
-       "      <th></th>\n",
-       "      <th>row</th>\n",
-       "      <th>col</th>\n",
-       "      <th>scaf</th>\n",
-       "      <th>stap</th>\n",
-       "      <th>loop</th>\n",
-       "      <th>skip</th>\n",
-       "      <th>scafLoop</th>\n",
-       "      <th>stapLoop</th>\n",
-       "      <th>stap_colors</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>num</th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>0</th>\n",
-       "      <td>12</td>\n",
-       "      <td>16</td>\n",
-       "      <td>[[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...</td>\n",
-       "      <td>[[-1, -1, -1, -1], [-1, -1, -1, -1], [0, 3, -1...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[[23, 13369809], [38, 12060012]]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>1</th>\n",
-       "      <td>12</td>\n",
-       "      <td>15</td>\n",
-       "      <td>[[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...</td>\n",
-       "      <td>[[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[[3, 1501302]]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>2</th>\n",
-       "      <td>13</td>\n",
-       "      <td>15</td>\n",
-       "      <td>[[-1, -1, -1, -1], [-1, -1, -1, -1], [3, 2, 2,...</td>\n",
-       "      <td>[[2, 1, -1, -1], [2, 2, 2, 0], [2, 3, 2, 1], [...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[[34, 8947848]]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>3</th>\n",
-       "      <td>13</td>\n",
-       "      <td>16</td>\n",
-       "      <td>[[-1, -1, -1, -1], [-1, -1, -1, -1], [3, 3, 2,...</td>\n",
-       "      <td>[[-1, -1, 3, 1], [3, 0, 3, 2], [3, 1, 3, 3], [...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[[0, 13369344]]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>4</th>\n",
-       "      <td>13</td>\n",
-       "      <td>17</td>\n",
-       "      <td>[[-1, -1, 4, 1], [4, 0, 4, 2], [4, 1, 4, 3], [...</td>\n",
-       "      <td>[[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[[39, 8947848]]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>5</th>\n",
-       "      <td>12</td>\n",
-       "      <td>17</td>\n",
-       "      <td>[[5, 1, -1, -1], [5, 2, 5, 0], [5, 3, 5, 1], [...</td>\n",
-       "      <td>[[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[[9, 0]]</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "</div>"
-      ],
-      "text/plain": [
-       "     row  col                                               scaf  \\\n",
-       "num                                                                \n",
-       "0     12   16  [[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...   \n",
-       "1     12   15  [[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...   \n",
-       "2     13   15  [[-1, -1, -1, -1], [-1, -1, -1, -1], [3, 2, 2,...   \n",
-       "3     13   16  [[-1, -1, -1, -1], [-1, -1, -1, -1], [3, 3, 2,...   \n",
-       "4     13   17  [[-1, -1, 4, 1], [4, 0, 4, 2], [4, 1, 4, 3], [...   \n",
-       "5     12   17  [[5, 1, -1, -1], [5, 2, 5, 0], [5, 3, 5, 1], [...   \n",
-       "\n",
-       "                                                  stap  \\\n",
-       "num                                                      \n",
-       "0    [[-1, -1, -1, -1], [-1, -1, -1, -1], [0, 3, -1...   \n",
-       "1    [[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...   \n",
-       "2    [[2, 1, -1, -1], [2, 2, 2, 0], [2, 3, 2, 1], [...   \n",
-       "3    [[-1, -1, 3, 1], [3, 0, 3, 2], [3, 1, 3, 3], [...   \n",
-       "4    [[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...   \n",
-       "5    [[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...   \n",
-       "\n",
-       "                                                  loop  \\\n",
-       "num                                                      \n",
-       "0    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...   \n",
-       "1    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...   \n",
-       "2    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...   \n",
-       "3    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...   \n",
-       "4    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...   \n",
-       "5    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...   \n",
-       "\n",
-       "                                                  skip scafLoop stapLoop  \\\n",
-       "num                                                                        \n",
-       "0    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...       []       []   \n",
-       "1    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...       []       []   \n",
-       "2    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...       []       []   \n",
-       "3    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...       []       []   \n",
-       "4    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...       []       []   \n",
-       "5    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...       []       []   \n",
-       "\n",
-       "                          stap_colors  \n",
-       "num                                    \n",
-       "0    [[23, 13369809], [38, 12060012]]  \n",
-       "1                      [[3, 1501302]]  \n",
-       "2                     [[34, 8947848]]  \n",
-       "3                     [[0, 13369344]]  \n",
-       "4                     [[39, 8947848]]  \n",
-       "5                            [[9, 0]]  "
-      ]
-     },
-     "execution_count": 441,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "f"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 199,
-   "id": "bda3cddd",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "array([0.  , 2.25, 3.4 ])"
-      ]
-     },
-     "execution_count": 199,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "p.getCoordinate(0,10)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 434,
-   "id": "a86cfa84",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "def mrdna_model_from_cadnano(json_file,**model_parameters):\n",
-    "    part,vslist=read_json_file(json_file)\n",
-    "    props = part.getModelProperties().copy()\n",
-    "    try:\n",
-    "        if props.get('point_type') == PointType.ARBITRARY:\n",
-    "            # TODO add code to encode Parts with ARBITRARY point configurations\n",
-    "            raise NotImplementedError(\"Not implemented\")\n",
-    "    except:\n",
-    "        try:\n",
-    "            vh_props, origins = part.helixPropertiesAndOrigins()\n",
-    "        except:\n",
-    "            origins = {hid:part.getVirtualHelixOrigin(hid)[:2] for hid in part.getidNums()}\n",
-    "    scaf_id=[nttype(vslist['scaf'][i]) for i in vslist.index]\n",
-    "    stap_id=[nttype(vslist['stap'][i]) for i in vslist.index]\n",
-    "    cad_bps=part.getIndices(0)\n",
-    "    vslist[\"scafnt\"]=np.sum(np.array(scaf_id),axis=1)\n",
-    "    vslist[\"stapnt\"]=np.sum(np.array(stap_id),axis=1)\n",
-    "    totnt=np.sum(vslist[\"scafnt\"])+np.sum(vslist[\"stapnt\"])\n",
-    "    is_scaf=np.zeros(totnt,dtype=bool)\n",
-    "    is_scaf[0:np.sum(vslist[\"scafnt\"])]=1\n",
-    "    nt_prop=pd.DataFrame(index=range(totnt),columns=[\"vh\",\"zid\",\"is_scaf\",\"r\",\"bp\",\"stack\",\"threeprime\",\"seq\",\"orientation\"])\n",
-    "    nt_prop[\"is_scaf\"]=is_scaf\n",
-    "    tot_id=scaf_id+stap_id\n",
-    "    vhi,zidi=np.where(np.array(scaf_id)==1)\n",
-    "    vhj,zidj=np.where(np.array(stap_id)==1)\n",
-    "    nt_prop[\"vh\"]=list(vhi)+list(vhj)\n",
-    "    nt_prop[\"zid\"]=list(zidi)+list(zidj)\n",
-    "    vhzid=list(zip(nt_prop[\"vh\"],nt_prop[\"zid\"]))\n",
-    "    nt_prop[\"r\"]=[part.getCoordinate(i,j) for i,j in zip(nt_prop[\"vh\"],nt_prop[\"zid\"])]\n",
-    "    nt_prop[\"orientation\"]=[get_helix_angle(part, helix_id, indices) for i,j in zip(nt_prop[\"vh\"],nt_prop[\"zid\"])]\n",
-    "    nt_prop=nt_prop.fillna(-1)\n",
-    "    for i in range(int(len(vhzid)/2)):\n",
-    "        try:\n",
-    "            bp1,bp2=(i,1+i+vhzid[i+1:].index(vhzid[i]))\n",
-    "            nt_prop[\"bp\"][bp1]=bp2\n",
-    "            nt_prop[\"bp\"][bp2]=bp1\n",
-    "        except:\n",
-    "            pass\n",
-    "    tprime_list=-np.ones(len(nt_prop.index),dtype=int)\n",
-    "    for i in range(len(nt_prop.index)):\n",
-    "        ((m,n),p)=list(zip(vhzid,nt_prop[\"is_scaf\"]))[i]\n",
-    "        if p==True:\n",
-    "            k,l=(vslist[\"scaf\"][m])[n][2:]\n",
-    "            if k!=-1 and l!=-1:\n",
-    "                n=index2.index(((k,l),True))\n",
-    "                tprime_list[i]=int(n)\n",
-    "\n",
-    "        else:\n",
-    "            k,l=(vslist[\"stap\"][m])[n][2:]\n",
-    "            if k!=-1 and l!=-1:\n",
-    "                n=index2.index(((k,l),False))\n",
-    "                tprime_list[i]=int(n)\n",
-    "    nt_prop[\"threeprime\"]=tprime_list\n",
-    "    (n,)=np.where(nt_prop[\"threeprime\"]==-1)\n",
-    "    stackid=nt_prop[\"bp\"][[list(nt_prop[\"threeprime\"]).index(i) for i in n]]\n",
-    "    nt_prop[\"stack\"][stackid.index[np.where(np.array(stackid)!=-1)]]=nt_prop[\"threeprime\"][stackid.index[np.where(np.array(stackid)!=-1)]]\n",
-    "\n",
-    "\n",
-    "    return nt_prop\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 442,
-   "id": "be5de5ba",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "array([-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n",
-       "       -1, -1, -1, -1, -1, -1, -1])"
-      ]
-     },
-     "execution_count": 442,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "np.array(nt_prop[\"seq\"])"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 302,
-   "id": "0ce6701d",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "tprime_list=-np.ones(len(nt_prop.index),dtype=int)\n",
-    "for i in range(len(nt_prop.index)):\n",
-    "    ((m,n),p)=list(zip(vhzid,nt_prop[\"is_scaf\"]))[i]\n",
-    "    if p==True:\n",
-    "        k,l=(vslist[\"scaf\"][m])[n][2:]\n",
-    "        if k!=-1 and l!=-1:\n",
-    "            n=index2.index(((k,l),True))\n",
-    "            tprime_list[i]=int(n)\n",
-    "            \n",
-    "    else:\n",
-    "        k,l=(vslist[\"stap\"][m])[n][2:]\n",
-    "        if k!=-1 and l!=-1:\n",
-    "            n=index2.index(((k,l),False))\n",
-    "            tprime_list[i]=int(n)\n",
-    "nt_prop[\"threeprime\"]=tprime_list"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 368,
-   "id": "9d0e49cf",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "def get_helix_angle(part, helix_id, indices):\n",
-    "    \"\"\" Get \"start_orientation\" for helix \"\"\"\n",
-    "        # import ipdb\n",
-    "        # ipdb.set_trace()\n",
-    "\n",
-    "    \"\"\" FROM CADNANO2.5\n",
-    "    + angle is CCW\n",
-    "    - angle is CW\n",
-    "    Right handed DNA rotates clockwise from 5' to 3'\n",
-    "    we use the convention the 5' end starts at 0 degrees\n",
-    "    and it's pair is minor_groove_angle degrees away\n",
-    "    direction, hence the minus signs.  eulerZ\n",
-    "    \"\"\"\n",
-    "\n",
-    "    hp, bpr, tpr, eulerZ, mgroove = part.vh_properties.loc[helix_id,\n",
-    "                                                                    ['helical_pitch',\n",
-    "                                                                     'bases_per_repeat',\n",
-    "                                                                     'turns_per_repeat',\n",
-    "                                                                     'eulerZ',\n",
-    "                                                                     'minor_groove_angle']]\n",
-    "    twist_per_base = tpr*360./bpr\n",
-    "        # angle = eulerZ - twist_per_base*indices + 0.5*mgroove + 180\n",
-    "    angle = eulerZ + twist_per_base*indices - 0.5*mgroove\n",
-    "    return rotationAboutAxis(np.array((0,0,1)),angle)\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 429,
-   "id": "c1d77642",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "\n",
-    "(n,)=np.where(nt_prop[\"threeprime\"]==-1)\n",
-    "\n",
-    "stackid=nt_prop[\"bp\"][[list(nt_prop[\"threeprime\"]).index(i) for i in n]]\n",
-    "\n",
-    "nt_prop[\"stack\"][stackid.index[np.where(np.array(stackid)!=-1)]]=nt_prop[\"threeprime\"][stackid.index[np.where(np.array(stackid)!=-1)]]\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 430,
-   "id": "2c2d1227",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "33      -1\n",
-       "68      -1\n",
-       "102     -1\n",
-       "136     -1\n",
-       "142     -1\n",
-       "176     -1\n",
-       "194    399\n",
-       "211     -1\n",
-       "233     20\n",
-       "281     -1\n",
-       "284     -1\n",
-       "351     -1\n",
-       "354    145\n",
-       "413     -1\n",
-       "Name: bp, dtype: int64"
-      ]
-     },
-     "execution_count": 430,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "stackid"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 431,
-   "id": "e701d029",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "232"
-      ]
-     },
-     "execution_count": 431,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "nt_prop[\"stack\"][233]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 433,
-   "id": "4a62f5d9",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "353"
-      ]
-     },
-     "execution_count": 433,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "nt_prop[\"stack\"][354]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 167,
-   "id": "d80ab792",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "scaf_id=[nttype(vslist[\"scaf\"][i]) for i in vslist.index]\n",
-    "stap_id=[nttype(vslist[\"stap\"][i]) for i in vslist.index]\n",
-    "nts=scaf_id+stap_id"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 360,
-   "id": "8e009bc9",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "nt_prop[\"orientation\"]=[get_helix_angle(p,i,j) for i,j in zip(nt_prop[\"vh\"],nt_prop[\"zid\"])]\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 190,
-   "id": "3dc97f0d",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "<div>\n",
-       "<style scoped>\n",
-       "    .dataframe tbody tr th:only-of-type {\n",
-       "        vertical-align: middle;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe tbody tr th {\n",
-       "        vertical-align: top;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe thead th {\n",
-       "        text-align: right;\n",
-       "    }\n",
-       "</style>\n",
-       "<table border=\"1\" class=\"dataframe\">\n",
-       "  <thead>\n",
-       "    <tr style=\"text-align: right;\">\n",
-       "      <th></th>\n",
-       "      <th>row</th>\n",
-       "      <th>col</th>\n",
-       "      <th>scaf</th>\n",
-       "      <th>stap</th>\n",
-       "      <th>loop</th>\n",
-       "      <th>skip</th>\n",
-       "      <th>scafLoop</th>\n",
-       "      <th>stapLoop</th>\n",
-       "      <th>stap_colors</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>num</th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>0</th>\n",
-       "      <td>12</td>\n",
-       "      <td>16</td>\n",
-       "      <td>[[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...</td>\n",
-       "      <td>[[-1, -1, -1, -1], [-1, -1, -1, -1], [0, 3, -1...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[[23, 13369809], [38, 12060012]]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>1</th>\n",
-       "      <td>12</td>\n",
-       "      <td>15</td>\n",
-       "      <td>[[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...</td>\n",
-       "      <td>[[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[[3, 1501302]]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>2</th>\n",
-       "      <td>13</td>\n",
-       "      <td>15</td>\n",
-       "      <td>[[-1, -1, -1, -1], [-1, -1, -1, -1], [3, 2, 2,...</td>\n",
-       "      <td>[[2, 1, -1, -1], [2, 2, 2, 0], [2, 3, 2, 1], [...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[[34, 8947848]]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>3</th>\n",
-       "      <td>13</td>\n",
-       "      <td>16</td>\n",
-       "      <td>[[-1, -1, -1, -1], [-1, -1, -1, -1], [3, 3, 2,...</td>\n",
-       "      <td>[[-1, -1, 3, 1], [3, 0, 3, 2], [3, 1, 3, 3], [...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[[0, 13369344]]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>4</th>\n",
-       "      <td>13</td>\n",
-       "      <td>17</td>\n",
-       "      <td>[[-1, -1, 4, 1], [4, 0, 4, 2], [4, 1, 4, 3], [...</td>\n",
-       "      <td>[[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[[39, 8947848]]</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>5</th>\n",
-       "      <td>12</td>\n",
-       "      <td>17</td>\n",
-       "      <td>[[5, 1, -1, -1], [5, 2, 5, 0], [5, 3, 5, 1], [...</td>\n",
-       "      <td>[[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[]</td>\n",
-       "      <td>[[9, 0]]</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "</div>"
-      ],
-      "text/plain": [
-       "     row  col                                               scaf  \\\n",
-       "num                                                                \n",
-       "0     12   16  [[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...   \n",
-       "1     12   15  [[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...   \n",
-       "2     13   15  [[-1, -1, -1, -1], [-1, -1, -1, -1], [3, 2, 2,...   \n",
-       "3     13   16  [[-1, -1, -1, -1], [-1, -1, -1, -1], [3, 3, 2,...   \n",
-       "4     13   17  [[-1, -1, 4, 1], [4, 0, 4, 2], [4, 1, 4, 3], [...   \n",
-       "5     12   17  [[5, 1, -1, -1], [5, 2, 5, 0], [5, 3, 5, 1], [...   \n",
-       "\n",
-       "                                                  stap  \\\n",
-       "num                                                      \n",
-       "0    [[-1, -1, -1, -1], [-1, -1, -1, -1], [0, 3, -1...   \n",
-       "1    [[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...   \n",
-       "2    [[2, 1, -1, -1], [2, 2, 2, 0], [2, 3, 2, 1], [...   \n",
-       "3    [[-1, -1, 3, 1], [3, 0, 3, 2], [3, 1, 3, 3], [...   \n",
-       "4    [[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...   \n",
-       "5    [[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, ...   \n",
-       "\n",
-       "                                                  loop  \\\n",
-       "num                                                      \n",
-       "0    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...   \n",
-       "1    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...   \n",
-       "2    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...   \n",
-       "3    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...   \n",
-       "4    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...   \n",
-       "5    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...   \n",
-       "\n",
-       "                                                  skip scafLoop stapLoop  \\\n",
-       "num                                                                        \n",
-       "0    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...       []       []   \n",
-       "1    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...       []       []   \n",
-       "2    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...       []       []   \n",
-       "3    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...       []       []   \n",
-       "4    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...       []       []   \n",
-       "5    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...       []       []   \n",
-       "\n",
-       "                          stap_colors  \n",
-       "num                                    \n",
-       "0    [[23, 13369809], [38, 12060012]]  \n",
-       "1                      [[3, 1501302]]  \n",
-       "2                     [[34, 8947848]]  \n",
-       "3                     [[0, 13369344]]  \n",
-       "4                     [[39, 8947848]]  \n",
-       "5                            [[9, 0]]  "
-      ]
-     },
-     "execution_count": 190,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "vslist"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 200,
-   "id": "3d019b73",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "def mrdna_model_from_cadnano(json_data,**model_parameters):\n",
-    "    part,vslist=decode_cadnano_part(json_data)\n",
-    "    props = part.getModelProperties().copy()\n",
-    "\n",
-    "    if props.get('point_type') == PointType.ARBITRARY:\n",
-    "            # TODO add code to encode Parts with ARBITRARY point configurations\n",
-    "        raise NotImplementedError(\"Not implemented\")\n",
-    "    else:\n",
-    "        try:\n",
-    "            vh_props, origins = part.helixPropertiesAndOrigins()\n",
-    "        except:\n",
-    "            origins = {hid:part.getVirtualHelixOrigin(hid)[:2] for hid in part.getidNums()}\n",
-    "    scaf_id=np.array([nttype(vslist['scaf'][i]) for i in vslist.index])\n",
-    "    stap_id=np.array([nttype(vslist['stap'][i]) for i in vslist.index])\n",
-    "    cad_bps=part.getIndices(0)\n",
-    "    vslist[\"scafnt\"]=np.sum(scaf_id,axis=1)\n",
-    "    vslist[\"stapnt\"]=np.sum(stap_id,axis=1)\n",
-    "    totnt=np.sum(vslist[\"scafnt\"])+np.sum(vslist[\"stapnt\"])\n",
-    "    is_scaf=np.zeros(totnt)\n",
-    "    is_scaf[0:np.sum(vslist[\"scafnt\"])]=1\n",
-    "    nt_prop=pd.DataFrame(index=range(totnt),columns=[\"vh\",\"zid\",\"is_scaf\",\"r\",\"bp\",\"stack\",\"threeprime\",\"seq\",\"orientation\"])\n",
-    "    nt_prop[\"is_scaf\"]=is_scaf\n",
-    "    vhi,zids=np.where(np.array(scaf_id+stap_id)==1)\n",
-    "    nt_prop[\"vh\"]=vhi\n",
-    "    nt_prop[\"zid\"]=zids\n",
-    "    nt_prop[\"r\"] =part.getCoordinate(nt_prop[\"vh\"],nt_prop[\"zid\"])\n",
-    "    return nt_prop\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 201,
-   "id": "fb789ffb",
-   "metadata": {},
-   "outputs": [
-    {
-     "ename": "NameError",
-     "evalue": "name 'decode_cadnano_part' is not defined",
-     "output_type": "error",
-     "traceback": [
-      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
-      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
-      "\u001b[0;32m<ipython-input-201-c5d589a8b80d>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mmrdna_model_from_cadnano\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"test.json\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
-      "\u001b[0;32m<ipython-input-200-181a924488ad>\u001b[0m in \u001b[0;36mmrdna_model_from_cadnano\u001b[0;34m(json_data, **model_parameters)\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mmrdna_model_from_cadnano\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mjson_data\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mmodel_parameters\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m     \u001b[0mpart\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mvslist\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdecode_cadnano_part\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mjson_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      3\u001b[0m     \u001b[0mprops\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpart\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetModelProperties\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mprops\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'point_type'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mPointType\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mARBITRARY\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;31mNameError\u001b[0m: name 'decode_cadnano_part' is not defined"
-     ]
-    }
-   ],
-   "source": [
-    "mrdna_model_from_cadnano(\"test.json\")"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 146,
-   "id": "98703867",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "a,b=np.where(np.array(nts)==1)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 148,
-   "id": "c316fead",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "array([ 5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,\n",
-       "       22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40,\n",
-       "       41,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,\n",
-       "       21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39,\n",
-       "       40, 41,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,\n",
-       "       17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 39,\n",
-       "       40, 41,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,\n",
-       "       17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 37,\n",
-       "       38, 39, 40, 41,  0,  1,  2,  3,  9, 10, 11, 12, 13, 14, 15, 16, 17,\n",
-       "       18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,\n",
-       "       35, 36, 37, 38, 39,  0,  1,  2,  3,  9, 10, 11, 12, 13, 14, 15, 16,\n",
-       "       17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,\n",
-       "       34, 35, 36, 37, 38, 39])"
-      ]
-     },
-     "execution_count": 148,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "nt_prop=pd.DataFrame(index)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 137,
-   "id": "0718e41e",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "def nttype(scafs):\n",
-    "    def judge(i):\n",
-    "        if i ==[-1,-1,-1,-1]:\n",
-    "            return 0\n",
-    "        else: return 1\n",
-    "    n=np.array([judge(i) for i in scafs])\n",
-    "    return n\n",
-    "\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "1a61115e",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 84,
-   "id": "12198835",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "b[\"scafnt\"]=[ntcount(b['scaf'][i]) for i in b.index]\n",
-    "b[\"stapnt\"]=[ntcount(b['stap'][i]) for i in b.index]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 156,
-   "id": "1e5c9807",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "<div>\n",
-       "<style scoped>\n",
-       "    .dataframe tbody tr th:only-of-type {\n",
-       "        vertical-align: middle;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe tbody tr th {\n",
-       "        vertical-align: top;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe thead th {\n",
-       "        text-align: right;\n",
-       "    }\n",
-       "</style>\n",
-       "<table border=\"1\" class=\"dataframe\">\n",
-       "  <thead>\n",
-       "    <tr style=\"text-align: right;\">\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th>r</th>\n",
-       "      <th>bp</th>\n",
-       "      <th>stack</th>\n",
-       "      <th>threeprime</th>\n",
-       "      <th>seq</th>\n",
-       "      <th>orientation</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>vh</th>\n",
-       "      <th>zid</th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>0</th>\n",
-       "      <th>0</th>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>1</th>\n",
-       "      <th>3</th>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>2</th>\n",
-       "      <th>1</th>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>3</th>\n",
-       "      <th>2</th>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>1</th>\n",
-       "      <th>8</th>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "</div>"
-      ],
-      "text/plain": [
-       "          r   bp stack threeprime  seq orientation\n",
-       "vh zid                                            \n",
-       "0  0    NaN  NaN   NaN        NaN  NaN         NaN\n",
-       "1  3    NaN  NaN   NaN        NaN  NaN         NaN\n",
-       "2  1    NaN  NaN   NaN        NaN  NaN         NaN\n",
-       "3  2    NaN  NaN   NaN        NaN  NaN         NaN\n",
-       "1  8    NaN  NaN   NaN        NaN  NaN         NaN"
-      ]
-     },
-     "execution_count": 156,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "i=range(5)\n",
-    "col=[\"vh\",\"zid\",\"r\",\"bp\",\"stack\",\"threeprime\",\"seq\",\"orientation\"]\n",
-    "d=pd.DataFrame(index=i,columns=col)\n",
-    "d['vh']=[0,1,2,3,1]\n",
-    "d['zid']=[0,3,1,2,8]\n",
-    "d.set_index([\"vh\",\"zid\"],inplace=True)\n",
-    "d"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 157,
-   "id": "31c50f63",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "<div>\n",
-       "<style scoped>\n",
-       "    .dataframe tbody tr th:only-of-type {\n",
-       "        vertical-align: middle;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe tbody tr th {\n",
-       "        vertical-align: top;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe thead th {\n",
-       "        text-align: right;\n",
-       "    }\n",
-       "</style>\n",
-       "<table border=\"1\" class=\"dataframe\">\n",
-       "  <thead>\n",
-       "    <tr style=\"text-align: right;\">\n",
-       "      <th></th>\n",
-       "      <th>vh</th>\n",
-       "      <th>zid</th>\n",
-       "      <th>r</th>\n",
-       "      <th>bp</th>\n",
-       "      <th>stack</th>\n",
-       "      <th>threeprime</th>\n",
-       "      <th>seq</th>\n",
-       "      <th>orientation</th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>0</th>\n",
-       "      <td>0</td>\n",
-       "      <td>0</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>1</th>\n",
-       "      <td>1</td>\n",
-       "      <td>3</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>2</th>\n",
-       "      <td>2</td>\n",
-       "      <td>1</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>3</th>\n",
-       "      <td>3</td>\n",
-       "      <td>2</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>4</th>\n",
-       "      <td>1</td>\n",
-       "      <td>8</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "</div>"
-      ],
-      "text/plain": [
-       "   vh  zid    r   bp stack threeprime  seq orientation\n",
-       "0   0    0  NaN  NaN   NaN        NaN  NaN         NaN\n",
-       "1   1    3  NaN  NaN   NaN        NaN  NaN         NaN\n",
-       "2   2    1  NaN  NaN   NaN        NaN  NaN         NaN\n",
-       "3   3    2  NaN  NaN   NaN        NaN  NaN         NaN\n",
-       "4   1    8  NaN  NaN   NaN        NaN  NaN         NaN"
-      ]
-     },
-     "execution_count": 157,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "\n",
-    "d=d.reset_index()\n",
-    "d"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 128,
-   "id": "67546136",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "(array([0, 2]),)"
-      ]
-     },
-     "execution_count": 128,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "s=[True,False,True,False,False]\n",
-    "np.where(np.array(s)==True)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 127,
-   "id": "bad20d6a",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "<div>\n",
-       "<style scoped>\n",
-       "    .dataframe tbody tr th:only-of-type {\n",
-       "        vertical-align: middle;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe tbody tr th {\n",
-       "        vertical-align: top;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe thead th {\n",
-       "        text-align: right;\n",
-       "    }\n",
-       "</style>\n",
-       "<table border=\"1\" class=\"dataframe\">\n",
-       "  <thead>\n",
-       "    <tr style=\"text-align: right;\">\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th>r</th>\n",
-       "      <th>bp</th>\n",
-       "      <th>stack</th>\n",
-       "      <th>threeprime</th>\n",
-       "      <th>seq</th>\n",
-       "      <th>orientation</th>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>vh</th>\n",
-       "      <th>zid</th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "      <th></th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>0</th>\n",
-       "      <th>0</th>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>1</th>\n",
-       "      <th>3</th>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>2</th>\n",
-       "      <th>1</th>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>3</th>\n",
-       "      <th>2</th>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>1</th>\n",
-       "      <th>8</th>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "      <td>NaN</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "</div>"
-      ],
-      "text/plain": [
-       "          r   bp stack threeprime  seq orientation\n",
-       "vh zid                                            \n",
-       "0  0    NaN  NaN   NaN        NaN  NaN         NaN\n",
-       "1  3    NaN  NaN   NaN        NaN  NaN         NaN\n",
-       "2  1    NaN  NaN   NaN        NaN  NaN         NaN\n",
-       "3  2    NaN  NaN   NaN        NaN  NaN         NaN\n",
-       "1  8    NaN  NaN   NaN        NaN  NaN         NaN"
-      ]
-     },
-     "execution_count": 127,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "d"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 100,
-   "id": "48225afa",
-   "metadata": {},
-   "outputs": [
-    {
-     "ename": "KeyError",
-     "evalue": "\"None of [Int64Index([0, 0], dtype='int64')] are in the [columns]\"",
-     "output_type": "error",
-     "traceback": [
-      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
-      "\u001b[0;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
-      "\u001b[0;32m<ipython-input-100-a349feadc600>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0md\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
-      "\u001b[0;32m/data/server1/cmaffeo2/miniconda3/lib/python3.8/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m   3509\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mis_iterator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3510\u001b[0m                 \u001b[0mkey\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3511\u001b[0;31m             \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_indexer_strict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"columns\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   3512\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3513\u001b[0m         \u001b[0;31m# take() does not accept boolean indexers\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m/data/server1/cmaffeo2/miniconda3/lib/python3.8/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36m_get_indexer_strict\u001b[0;34m(self, key, axis_name)\u001b[0m\n\u001b[1;32m   5780\u001b[0m             \u001b[0mkeyarr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnew_indexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reindex_non_unique\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkeyarr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5781\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 5782\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_raise_if_missing\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkeyarr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis_name\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   5783\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5784\u001b[0m         \u001b[0mkeyarr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtake\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;32m/data/server1/cmaffeo2/miniconda3/lib/python3.8/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36m_raise_if_missing\u001b[0;34m(self, key, indexer, axis_name)\u001b[0m\n\u001b[1;32m   5840\u001b[0m                 \u001b[0;32mif\u001b[0m \u001b[0muse_interval_msg\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5841\u001b[0m                     \u001b[0mkey\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 5842\u001b[0;31m                 \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"None of [{key}] are in the [{axis_name}]\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   5843\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5844\u001b[0m             \u001b[0mnot_found\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mensure_index\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mmissing_mask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnonzero\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munique\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
-      "\u001b[0;31mKeyError\u001b[0m: \"None of [Int64Index([0, 0], dtype='int64')] are in the [columns]\""
-     ]
-    }
-   ],
-   "source": [
-    "d[[0,0]]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 13,
-   "id": "c75bd92f",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "[[23, 13369809], [38, 12060012]]"
-      ]
-     },
-     "execution_count": 13,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "df[\"vstrands\"][0][\"stap_colors\"]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 14,
-   "id": "00f1513e",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "210"
-      ]
-     },
-     "execution_count": 14,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "vh_vb,pattern=pd.read_pickle(\"test.virt2nuc\")\n",
-    "len(vh_vb._scaf)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 198,
-   "id": "aaa65658",
-   "metadata": {},
-   "outputs": [
-    {
-     "ename": "TypeError",
-     "evalue": "file must have 'read' and 'readline' attributes",
-     "output_type": "error",
-     "traceback": [
-      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
-      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
-      "Cell \u001b[0;32mIn[198], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m df \u001b[38;5;241m=\u001b[39m \u001b[43mpickle\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mload\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtest.virt2nuc\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n",
-      "\u001b[0;31mTypeError\u001b[0m: file must have 'read' and 'readline' attributes"
-     ]
-    }
-   ],
-   "source": [
-    "df = pickle.load(\"test.virt2nuc\")"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 15,
-   "id": "cbddf07f",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "{0: (12, 16), 1: (12, 15), 2: (13, 15), 3: (13, 16), 4: (13, 17), 5: (12, 17)}"
-      ]
-     },
-     "execution_count": 15,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "pattern"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 173,
-   "id": "fac8699e",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "class strands():\n",
-    "    def __init__(self):\n",
-    "        self.row=0 \n",
-    "        self.col=0\n",
-    "        self.num=0\n",
-    "        self.scaf=[]\n",
-    "        self.stap=[]\n",
-    "        self.loop=[]\n",
-    "        self.skip=[]\n",
-    "        self.scafLoop=[]\n",
-    "        self.stapLoop=[]\n",
-    "        self.stap_colors=[]\n",
-    "        self.scaf_contact={}\n",
-    "        self.stap_connect={}\n",
-    "    def to_dict(self):\n",
-    "        d={}\n",
-    "        d['row']=self.row\n",
-    "        d['col']=self.col\n",
-    "        d['num']=self.num\n",
-    "        d['scaf']=self.scaf\n",
-    "        d['stap']=self.stap\n",
-    "        d['loop']=self.loop\n",
-    "        d['skip']=self.skip\n",
-    "        d['scafLoop']=self.scafLoop\n",
-    "        d['stapLoop']=self.stapLoop\n",
-    "        d['stap_colors']=self.stap_colors\n",
-    "        return d\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 177,
-   "id": "308cd6c1",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "def find_segs(vir2nuc_scaf):\n",
-    "    oligos={}\n",
-    "    for i in range(len(vir2nuc_scaf)):\n",
-    "        oligo,ox_ind=list(vir2nuc_scaf.values())[i]\n",
-    "        if oligo not in oligos.keys():\n",
-    "            oligos[oligo]=[]\n",
-    "        oligos[oligo].append(list(vir2nuc_scaf.keys())[i])\n",
-    "    return oligos\n",
-    "\n",
-    "#class\n",
-    "def decode_vh_vb(virt2nuc):\n",
-    "    vh_list={}\n",
-    "    vh_vb,pattern=pd.read_pickle(virt2nuc)\n",
-    "    for i in pattern.keys():\n",
-    "        s=strands()\n",
-    "        s.row,s.col=pattern[i]\n",
-    "        s.num=i\n",
-    "        vh_list[s.num]=s\n",
-    "    scafs=vh_vb._scaf\n",
-    "    staps=vh_vb._stap\n",
-    "    scaf_strands=find_segs(scafs)\n",
-    "    scaf_oligos=list(scaf_strands.keys())\n",
-    "    for i in scaf_oligos:\n",
-    "        pass\n",
-    "        \n",
-    "            \n",
-    "    return vh_list"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 187,
-   "id": "bc032680",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "[[(2, 34),\n",
-       "  (2, 33),\n",
-       "  (2, 32),\n",
-       "  (2, 31),\n",
-       "  (2, 30),\n",
-       "  (2, 29),\n",
-       "  (2, 28),\n",
-       "  (2, 27),\n",
-       "  (2, 26),\n",
-       "  (2, 25),\n",
-       "  (2, 24),\n",
-       "  (2, 23),\n",
-       "  (2, 22),\n",
-       "  (2, 21),\n",
-       "  (2, 20),\n",
-       "  (2, 19),\n",
-       "  (2, 18),\n",
-       "  (2, 17),\n",
-       "  (2, 16),\n",
-       "  (2, 15),\n",
-       "  (2, 14),\n",
-       "  (2, 13),\n",
-       "  (2, 12),\n",
-       "  (2, 11),\n",
-       "  (2, 10),\n",
-       "  (2, 9),\n",
-       "  (2, 8),\n",
-       "  (2, 7),\n",
-       "  (2, 6),\n",
-       "  (2, 5),\n",
-       "  (2, 4),\n",
-       "  (2, 3),\n",
-       "  (2, 2),\n",
-       "  (2, 1),\n",
-       "  (2, 0)],\n",
-       " [(1, 3),\n",
-       "  (1, 4),\n",
-       "  (1, 5),\n",
-       "  (1, 6),\n",
-       "  (1, 7),\n",
-       "  (1, 8),\n",
-       "  (1, 9),\n",
-       "  (1, 10),\n",
-       "  (1, 11),\n",
-       "  (1, 12),\n",
-       "  (1, 13),\n",
-       "  (1, 14),\n",
-       "  (1, 15),\n",
-       "  (1, 16),\n",
-       "  (1, 17),\n",
-       "  (1, 18),\n",
-       "  (1, 19),\n",
-       "  (1, 20),\n",
-       "  (0, 20),\n",
-       "  (0, 19),\n",
-       "  (0, 18),\n",
-       "  (0, 17),\n",
-       "  (0, 16),\n",
-       "  (0, 15),\n",
-       "  (0, 14),\n",
-       "  (0, 13),\n",
-       "  (0, 12),\n",
-       "  (0, 11),\n",
-       "  (0, 10),\n",
-       "  (0, 9),\n",
-       "  (0, 8),\n",
-       "  (0, 7),\n",
-       "  (0, 6),\n",
-       "  (0, 5),\n",
-       "  (0, 4),\n",
-       "  (0, 3),\n",
-       "  (0, 2)],\n",
-       " [(0, 23),\n",
-       "  (0, 22),\n",
-       "  (0, 21),\n",
-       "  (1, 21),\n",
-       "  (1, 22),\n",
-       "  (1, 23),\n",
-       "  (1, 24),\n",
-       "  (1, 25),\n",
-       "  (1, 26),\n",
-       "  (1, 27),\n",
-       "  (1, 28),\n",
-       "  (1, 29),\n",
-       "  (1, 30),\n",
-       "  (1, 31),\n",
-       "  (1, 32),\n",
-       "  (1, 33),\n",
-       "  (1, 34),\n",
-       "  (1, 35),\n",
-       "  (1, 36),\n",
-       "  (1, 37),\n",
-       "  (1, 38)],\n",
-       " [(5, 9),\n",
-       "  (5, 10),\n",
-       "  (5, 11),\n",
-       "  (5, 12),\n",
-       "  (5, 13),\n",
-       "  (5, 14),\n",
-       "  (5, 15),\n",
-       "  (5, 16),\n",
-       "  (5, 17),\n",
-       "  (5, 18),\n",
-       "  (5, 19),\n",
-       "  (5, 20),\n",
-       "  (5, 21),\n",
-       "  (5, 22),\n",
-       "  (5, 23),\n",
-       "  (5, 24),\n",
-       "  (5, 25),\n",
-       "  (5, 26),\n",
-       "  (5, 27),\n",
-       "  (0, 27),\n",
-       "  (0, 26),\n",
-       "  (0, 25),\n",
-       "  (0, 24)],\n",
-       " [(0, 38),\n",
-       "  (0, 37),\n",
-       "  (0, 36),\n",
-       "  (0, 35),\n",
-       "  (0, 34),\n",
-       "  (0, 33),\n",
-       "  (0, 32),\n",
-       "  (0, 31),\n",
-       "  (0, 30),\n",
-       "  (0, 29),\n",
-       "  (0, 28),\n",
-       "  (5, 28),\n",
-       "  (5, 29),\n",
-       "  (5, 30),\n",
-       "  (5, 31),\n",
-       "  (5, 32),\n",
-       "  (5, 33),\n",
-       "  (5, 34),\n",
-       "  (5, 35),\n",
-       "  (5, 36),\n",
-       "  (5, 37),\n",
-       "  (5, 38),\n",
-       "  (5, 39)],\n",
-       " [(3, 0),\n",
-       "  (3, 1),\n",
-       "  (3, 2),\n",
-       "  (3, 3),\n",
-       "  (3, 4),\n",
-       "  (3, 5),\n",
-       "  (3, 6),\n",
-       "  (3, 7),\n",
-       "  (3, 8),\n",
-       "  (3, 9),\n",
-       "  (3, 10),\n",
-       "  (3, 11),\n",
-       "  (3, 12),\n",
-       "  (3, 13),\n",
-       "  (3, 14),\n",
-       "  (3, 15),\n",
-       "  (3, 16),\n",
-       "  (3, 17),\n",
-       "  (3, 18),\n",
-       "  (3, 19),\n",
-       "  (3, 20),\n",
-       "  (4, 20),\n",
-       "  (4, 19),\n",
-       "  (4, 18),\n",
-       "  (4, 17),\n",
-       "  (4, 16),\n",
-       "  (4, 15),\n",
-       "  (4, 14),\n",
-       "  (4, 13),\n",
-       "  (4, 12),\n",
-       "  (4, 11),\n",
-       "  (4, 10),\n",
-       "  (4, 9)],\n",
-       " [(4, 39),\n",
-       "  (4, 38),\n",
-       "  (4, 37),\n",
-       "  (4, 36),\n",
-       "  (4, 35),\n",
-       "  (4, 34),\n",
-       "  (4, 33),\n",
-       "  (4, 32),\n",
-       "  (4, 31),\n",
-       "  (4, 30),\n",
-       "  (4, 29),\n",
-       "  (4, 28),\n",
-       "  (4, 27),\n",
-       "  (4, 26),\n",
-       "  (4, 25),\n",
-       "  (4, 24),\n",
-       "  (4, 23),\n",
-       "  (4, 22),\n",
-       "  (4, 21),\n",
-       "  (3, 21),\n",
-       "  (3, 22),\n",
-       "  (3, 23),\n",
-       "  (3, 24),\n",
-       "  (3, 25),\n",
-       "  (3, 26),\n",
-       "  (3, 27),\n",
-       "  (3, 28),\n",
-       "  (3, 29),\n",
-       "  (3, 30),\n",
-       "  (3, 31),\n",
-       "  (3, 32),\n",
-       "  (3, 33),\n",
-       "  (3, 34)]]"
-      ]
-     },
-     "execution_count": 187,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "s1=decode_vh_vb(\"test.virt2nuc\")\n",
-    "vh_vb,pattern=pd.read_pickle(\"test.virt2nuc\")\n",
-    "list(find_segs(vh_vb._stap).values())"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 142,
-   "id": "29ff7990",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "def find_segs(vir2nuc_scaf):\n",
-    "    oligos={}\n",
-    "    for i in range(len(vir2nuc_scaf)):\n",
-    "        oligo,ox_ind=list(vir2nuc_scaf.values())[i]\n",
-    "        if oligo not in oligos.keys():\n",
-    "            oligos[oligo]=[]\n",
-    "        oligos[oligo].append(list(vir2nuc_scaf.keys())[i])\n",
-    "    return oligos\n",
-    "\n",
-    "def decode_vh_vb(virt2nuc):\n",
-    "    vh_vb,pattern=pd.read_pickle(virt2nuc)\n",
-    "    vi={'row':0, 'col':0, 'num':0, 'scaf':dict(), 'stap':dict(), 'loop':[], 'skip':[], 'scafLoop':[],'stapLoop':[], 'stap_colors':[],\"scaf53\":True}\n",
-    "    vs=[]  \n",
-    "    for i in range(len(pattern.keys())):\n",
-    "        vhi=vi.copy()\n",
-    "        vhi[\"row\"],vhi[\"col\"]=list(pattern.values())[i]\n",
-    "        vhi[\"num\"]=list(pattern.keys())[i]\n",
-    "        vs.append(vhi)\n",
-    "    vhelices=pd.DataFrame(vs)\n",
-    "    vhelices=vhelices.set_index('num')\n",
-    "    scafs=vh_vb._scaf\n",
-    "    staps=vh_vb._stap\n",
-    "    scaf_strands=find_segs(scafs)\n",
-    "    stap_strands=find_segs(staps)\n",
-    "    scaf_oligos=list(scaf_strands.keys())\n",
-    "\n",
-    "        \n",
-    "    return vhelices"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 117,
-   "id": "3cb9542c",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "def find_base_map(oligo,i,vhx,scaf=True):\n",
-    "    vh0,vb0=oligo[i]\n",
-    "    vh1,vb1=oligo[i+1]\n",
-    "    if scaf==True:\n",
-    "        if vb0 not in vhx[\"scaf\"][vh0].keys():\n",
-    "            \n",
-    "    if vh0==vh1 and scaf==True:\n",
-    "        if vb0>vb1:\n",
-    "            vhx[vh0][\"scaf\"][vb0]=\n",
-    "        \n",
-    "\n",
-    "    \n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 116,
-   "id": "4219838b",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "[(5, 22),\n",
-       " (5, 21),\n",
-       " (5, 20),\n",
-       " (5, 19),\n",
-       " (5, 18),\n",
-       " (5, 17),\n",
-       " (5, 16),\n",
-       " (5, 15),\n",
-       " (5, 14),\n",
-       " (5, 13),\n",
-       " (5, 12),\n",
-       " (5, 11),\n",
-       " (5, 10),\n",
-       " (5, 9),\n",
-       " (4, 9),\n",
-       " (4, 10),\n",
-       " (4, 11),\n",
-       " (4, 12),\n",
-       " (4, 13),\n",
-       " (4, 14),\n",
-       " (4, 15),\n",
-       " (3, 15),\n",
-       " (3, 14),\n",
-       " (3, 13),\n",
-       " (3, 12),\n",
-       " (3, 11),\n",
-       " (3, 10),\n",
-       " (3, 9),\n",
-       " (3, 8),\n",
-       " (3, 7),\n",
-       " (3, 6),\n",
-       " (3, 5),\n",
-       " (3, 4),\n",
-       " (3, 3),\n",
-       " (3, 2),\n",
-       " (2, 2),\n",
-       " (2, 3),\n",
-       " (2, 4),\n",
-       " (2, 5),\n",
-       " (2, 6),\n",
-       " (2, 7),\n",
-       " (2, 8),\n",
-       " (2, 9),\n",
-       " (2, 10),\n",
-       " (2, 11),\n",
-       " (2, 12),\n",
-       " (2, 13),\n",
-       " (2, 14),\n",
-       " (2, 15),\n",
-       " (2, 16),\n",
-       " (2, 17),\n",
-       " (2, 18),\n",
-       " (1, 18),\n",
-       " (1, 17),\n",
-       " (1, 16),\n",
-       " (1, 15),\n",
-       " (1, 14),\n",
-       " (1, 13),\n",
-       " (1, 12),\n",
-       " (1, 11),\n",
-       " (1, 10),\n",
-       " (1, 9),\n",
-       " (1, 8),\n",
-       " (1, 7),\n",
-       " (1, 6),\n",
-       " (1, 5),\n",
-       " (0, 5),\n",
-       " (0, 6),\n",
-       " (0, 7),\n",
-       " (0, 8),\n",
-       " (0, 9),\n",
-       " (0, 10),\n",
-       " (0, 11),\n",
-       " (0, 12),\n",
-       " (0, 13),\n",
-       " (0, 14),\n",
-       " (0, 15),\n",
-       " (0, 16),\n",
-       " (0, 17),\n",
-       " (0, 18),\n",
-       " (0, 19),\n",
-       " (0, 20),\n",
-       " (0, 21),\n",
-       " (0, 22),\n",
-       " (0, 23),\n",
-       " (0, 24),\n",
-       " (0, 25),\n",
-       " (0, 26),\n",
-       " (0, 27),\n",
-       " (0, 28),\n",
-       " (0, 29),\n",
-       " (0, 30),\n",
-       " (0, 31),\n",
-       " (0, 32),\n",
-       " (0, 33),\n",
-       " (0, 34),\n",
-       " (0, 35),\n",
-       " (0, 36),\n",
-       " (1, 36),\n",
-       " (1, 35),\n",
-       " (1, 34),\n",
-       " (1, 33),\n",
-       " (1, 32),\n",
-       " (1, 31),\n",
-       " (1, 30),\n",
-       " (1, 29),\n",
-       " (1, 28),\n",
-       " (1, 27),\n",
-       " (1, 26),\n",
-       " (1, 25),\n",
-       " (1, 24),\n",
-       " (1, 23),\n",
-       " (1, 22),\n",
-       " (1, 21),\n",
-       " (1, 20),\n",
-       " (1, 19),\n",
-       " (2, 19),\n",
-       " (2, 20),\n",
-       " (2, 21),\n",
-       " (2, 22),\n",
-       " (2, 23),\n",
-       " (2, 24),\n",
-       " (2, 25),\n",
-       " (2, 26),\n",
-       " (2, 27),\n",
-       " (2, 28),\n",
-       " (2, 29),\n",
-       " (2, 30),\n",
-       " (2, 31),\n",
-       " (2, 32),\n",
-       " (3, 32),\n",
-       " (3, 31),\n",
-       " (3, 30),\n",
-       " (3, 29),\n",
-       " (3, 28),\n",
-       " (3, 27),\n",
-       " (3, 26),\n",
-       " (3, 25),\n",
-       " (3, 24),\n",
-       " (3, 23),\n",
-       " (3, 22),\n",
-       " (3, 21),\n",
-       " (3, 20),\n",
-       " (3, 19),\n",
-       " (3, 18),\n",
-       " (3, 17),\n",
-       " (3, 16),\n",
-       " (4, 16),\n",
-       " (4, 17),\n",
-       " (4, 18),\n",
-       " (4, 19),\n",
-       " (4, 20),\n",
-       " (4, 21),\n",
-       " (4, 22),\n",
-       " (4, 23),\n",
-       " (4, 24),\n",
-       " (4, 25),\n",
-       " (4, 26),\n",
-       " (4, 27),\n",
-       " (4, 28),\n",
-       " (4, 29),\n",
-       " (4, 30),\n",
-       " (4, 31),\n",
-       " (4, 32),\n",
-       " (4, 33),\n",
-       " (4, 34),\n",
-       " (4, 35),\n",
-       " (4, 36),\n",
-       " (4, 37),\n",
-       " (4, 38),\n",
-       " (4, 39),\n",
-       " (5, 39),\n",
-       " (5, 38),\n",
-       " (5, 37),\n",
-       " (5, 36),\n",
-       " (5, 35),\n",
-       " (5, 34),\n",
-       " (5, 33),\n",
-       " (5, 32),\n",
-       " (5, 31),\n",
-       " (5, 30),\n",
-       " (5, 29),\n",
-       " (5, 28),\n",
-       " (5, 27),\n",
-       " (5, 26),\n",
-       " (5, 25),\n",
-       " (5, 24),\n",
-       " (5, 23)]"
-      ]
-     },
-     "execution_count": 116,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "scafs=vh_vb._scaf\n",
-    "s=list(scafs.values())\n",
-    "len(scafs)\n",
-    "ss=find_segs(scafs)[7]\n",
-    "ss"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 157,
-   "id": "45168e4b",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "[(1, 2)]"
-      ]
-     },
-     "execution_count": 157,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "oligos[0]=[]\n",
-    "L=[]\n",
-    "L.append((1,2))\n",
-    "L"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 152,
-   "id": "33e5c80d",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "(0, 39)"
-      ]
-     },
-     "execution_count": 152,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "list(scafs.keys())[0]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 62,
-   "id": "9b79e902",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "{(2, 34): (3, [43]),\n",
-       " (2, 33): (3, [42]),\n",
-       " (2, 32): (3, [41]),\n",
-       " (2, 31): (3, [40]),\n",
-       " (2, 30): (3, [39]),\n",
-       " (2, 29): (3, [38]),\n",
-       " (2, 28): (3, [37]),\n",
-       " (2, 27): (3, [36]),\n",
-       " (2, 26): (3, [35]),\n",
-       " (2, 25): (3, [34]),\n",
-       " (2, 24): (3, [33]),\n",
-       " (2, 23): (3, [32]),\n",
-       " (2, 22): (3, [31]),\n",
-       " (2, 21): (3, [30]),\n",
-       " (2, 20): (3, [29]),\n",
-       " (2, 19): (3, [28]),\n",
-       " (2, 18): (3, [27]),\n",
-       " (2, 17): (3, [26]),\n",
-       " (2, 16): (3, [25]),\n",
-       " (2, 15): (3, [24]),\n",
-       " (2, 14): (3, [23]),\n",
-       " (2, 13): (3, [22]),\n",
-       " (2, 12): (3, [21]),\n",
-       " (2, 11): (3, [20]),\n",
-       " (2, 10): (3, [19]),\n",
-       " (2, 9): (3, [18]),\n",
-       " (2, 8): (3, [17]),\n",
-       " (2, 7): (3, [16]),\n",
-       " (2, 6): (3, [15]),\n",
-       " (2, 5): (3, [14]),\n",
-       " (2, 4): (3, [13]),\n",
-       " (2, 3): (3, [12]),\n",
-       " (2, 2): (3, [11]),\n",
-       " (2, 1): (3, [10]),\n",
-       " (2, 0): (3, [9]),\n",
-       " (1, 3): (8, [281]),\n",
-       " (1, 4): (8, [280]),\n",
-       " (1, 5): (8, [279]),\n",
-       " (1, 6): (8, [278]),\n",
-       " (1, 7): (8, [277]),\n",
-       " (1, 8): (8, [276]),\n",
-       " (1, 9): (8, [275]),\n",
-       " (1, 10): (8, [274]),\n",
-       " (1, 11): (8, [273]),\n",
-       " (1, 12): (8, [272]),\n",
-       " (1, 13): (8, [271]),\n",
-       " (1, 14): (8, [270]),\n",
-       " (1, 15): (8, [269]),\n",
-       " (1, 16): (8, [268]),\n",
-       " (1, 17): (8, [267]),\n",
-       " (1, 18): (8, [266]),\n",
-       " (1, 19): (8, [265]),\n",
-       " (1, 20): (8, [264]),\n",
-       " (0, 20): (8, [263]),\n",
-       " (0, 19): (8, [262]),\n",
-       " (0, 18): (8, [261]),\n",
-       " (0, 17): (8, [260]),\n",
-       " (0, 16): (8, [259]),\n",
-       " (0, 15): (8, [258]),\n",
-       " (0, 14): (8, [257]),\n",
-       " (0, 13): (8, [256]),\n",
-       " (0, 12): (8, [255]),\n",
-       " (0, 11): (8, [254]),\n",
-       " (0, 10): (8, [253]),\n",
-       " (0, 9): (8, [252]),\n",
-       " (0, 8): (8, [251]),\n",
-       " (0, 7): (8, [250]),\n",
-       " (0, 6): (8, [249]),\n",
-       " (0, 5): (8, [248]),\n",
-       " (0, 4): (8, [247]),\n",
-       " (0, 3): (8, [246]),\n",
-       " (0, 2): (8, [245]),\n",
-       " (0, 23): (9, [302]),\n",
-       " (0, 22): (9, [301]),\n",
-       " (0, 21): (9, [300]),\n",
-       " (1, 21): (9, [299]),\n",
-       " (1, 22): (9, [298]),\n",
-       " (1, 23): (9, [297]),\n",
-       " (1, 24): (9, [296]),\n",
-       " (1, 25): (9, [295]),\n",
-       " (1, 26): (9, [294]),\n",
-       " (1, 27): (9, [293]),\n",
-       " (1, 28): (9, [292]),\n",
-       " (1, 29): (9, [291]),\n",
-       " (1, 30): (9, [290]),\n",
-       " (1, 31): (9, [289]),\n",
-       " (1, 32): (9, [288]),\n",
-       " (1, 33): (9, [287]),\n",
-       " (1, 34): (9, [286]),\n",
-       " (1, 35): (9, [285]),\n",
-       " (1, 36): (9, [284]),\n",
-       " (1, 37): (9, [283]),\n",
-       " (1, 38): (9, [282]),\n",
-       " (5, 9): (10, [325]),\n",
-       " (5, 10): (10, [324]),\n",
-       " (5, 11): (10, [323]),\n",
-       " (5, 12): (10, [322]),\n",
-       " (5, 13): (10, [321]),\n",
-       " (5, 14): (10, [320]),\n",
-       " (5, 15): (10, [319]),\n",
-       " (5, 16): (10, [318]),\n",
-       " (5, 17): (10, [317]),\n",
-       " (5, 18): (10, [316]),\n",
-       " (5, 19): (10, [315]),\n",
-       " (5, 20): (10, [314]),\n",
-       " (5, 21): (10, [313]),\n",
-       " (5, 22): (10, [312]),\n",
-       " (5, 23): (10, [311]),\n",
-       " (5, 24): (10, [310]),\n",
-       " (5, 25): (10, [309]),\n",
-       " (5, 26): (10, [308]),\n",
-       " (5, 27): (10, [307]),\n",
-       " (0, 27): (10, [306]),\n",
-       " (0, 26): (10, [305]),\n",
-       " (0, 25): (10, [304]),\n",
-       " (0, 24): (10, [303]),\n",
-       " (0, 38): (11, [348]),\n",
-       " (0, 37): (11, [347]),\n",
-       " (0, 36): (11, [346]),\n",
-       " (0, 35): (11, [345]),\n",
-       " (0, 34): (11, [344]),\n",
-       " (0, 33): (11, [343]),\n",
-       " (0, 32): (11, [342]),\n",
-       " (0, 31): (11, [341]),\n",
-       " (0, 30): (11, [340]),\n",
-       " (0, 29): (11, [339]),\n",
-       " (0, 28): (11, [338]),\n",
-       " (5, 28): (11, [337]),\n",
-       " (5, 29): (11, [336]),\n",
-       " (5, 30): (11, [335]),\n",
-       " (5, 31): (11, [334]),\n",
-       " (5, 32): (11, [333]),\n",
-       " (5, 33): (11, [332]),\n",
-       " (5, 34): (11, [331]),\n",
-       " (5, 35): (11, [330]),\n",
-       " (5, 36): (11, [329]),\n",
-       " (5, 37): (11, [328]),\n",
-       " (5, 38): (11, [327]),\n",
-       " (5, 39): (11, [326]),\n",
-       " (3, 0): (12, [381]),\n",
-       " (3, 1): (12, [380]),\n",
-       " (3, 2): (12, [379]),\n",
-       " (3, 3): (12, [378]),\n",
-       " (3, 4): (12, [377]),\n",
-       " (3, 5): (12, [376]),\n",
-       " (3, 6): (12, [375]),\n",
-       " (3, 7): (12, [374]),\n",
-       " (3, 8): (12, [373]),\n",
-       " (3, 9): (12, [372]),\n",
-       " (3, 10): (12, [371]),\n",
-       " (3, 11): (12, [370]),\n",
-       " (3, 12): (12, [369]),\n",
-       " (3, 13): (12, [368]),\n",
-       " (3, 14): (12, [367]),\n",
-       " (3, 15): (12, [366]),\n",
-       " (3, 16): (12, [365]),\n",
-       " (3, 17): (12, [364]),\n",
-       " (3, 18): (12, [363]),\n",
-       " (3, 19): (12, [362]),\n",
-       " (3, 20): (12, [361]),\n",
-       " (4, 20): (12, [360]),\n",
-       " (4, 19): (12, [359]),\n",
-       " (4, 18): (12, [358]),\n",
-       " (4, 17): (12, [357]),\n",
-       " (4, 16): (12, [356]),\n",
-       " (4, 15): (12, [355]),\n",
-       " (4, 14): (12, [354]),\n",
-       " (4, 13): (12, [353]),\n",
-       " (4, 12): (12, [352]),\n",
-       " (4, 11): (12, [351]),\n",
-       " (4, 10): (12, [350]),\n",
-       " (4, 9): (12, [349]),\n",
-       " (4, 39): (13, [414]),\n",
-       " (4, 38): (13, [413]),\n",
-       " (4, 37): (13, [412]),\n",
-       " (4, 36): (13, [411]),\n",
-       " (4, 35): (13, [410]),\n",
-       " (4, 34): (13, [409]),\n",
-       " (4, 33): (13, [408]),\n",
-       " (4, 32): (13, [407]),\n",
-       " (4, 31): (13, [406]),\n",
-       " (4, 30): (13, [405]),\n",
-       " (4, 29): (13, [404]),\n",
-       " (4, 28): (13, [403]),\n",
-       " (4, 27): (13, [402]),\n",
-       " (4, 26): (13, [401]),\n",
-       " (4, 25): (13, [400]),\n",
-       " (4, 24): (13, [399]),\n",
-       " (4, 23): (13, [398]),\n",
-       " (4, 22): (13, [397]),\n",
-       " (4, 21): (13, [396]),\n",
-       " (3, 21): (13, [395]),\n",
-       " (3, 22): (13, [394]),\n",
-       " (3, 23): (13, [393]),\n",
-       " (3, 24): (13, [392]),\n",
-       " (3, 25): (13, [391]),\n",
-       " (3, 26): (13, [390]),\n",
-       " (3, 27): (13, [389]),\n",
-       " (3, 28): (13, [388]),\n",
-       " (3, 29): (13, [387]),\n",
-       " (3, 30): (13, [386]),\n",
-       " (3, 31): (13, [385]),\n",
-       " (3, 32): (13, [384]),\n",
-       " (3, 33): (13, [383]),\n",
-       " (3, 34): (13, [382])}"
-      ]
-     },
-     "execution_count": 62,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "s=vh_vb.__dict__\n",
-    "scafs=s[\"_scaf\"]\n",
-    "staps=s[\"_stap\"]\n",
-    "staps"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 3,
-   "id": "cecd1c9f",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "class vstrands (object):\n",
-    "\n",
-    "    def __init__(self):\n",
-    "        self.vhelices = []\n",
-    "\n",
-    "    def add_vhelix(self, toadd):\n",
-    "        self.vhelices.append(toadd)\n",
-    "\n",
-    "    def bbox(self):\n",
-    "        rows = []\n",
-    "        cols = []\n",
-    "        lens = []\n",
-    "        for h in self.vhelices:\n",
-    "            rows.append(h.row)\n",
-    "            cols.append(h.col)\n",
-    "            lens.append(len(h.stap))\n",
-    "\n",
-    "        dr = DIST_SQUARE * (max(rows) - min(rows) + 2)\n",
-    "        dc = DIST_SQUARE * (max(cols) - min(cols) + 2)\n",
-    "        dl = 0.34 * (max(lens) + 2)\n",
-    "        \n",
-    "        return 2 * max([dr, dc, dl]) * BOX_FACTOR\n",
-    "    \n",
-    "    def __str__(self):\n",
-    "        a = '{\\n\"vstrands\":[\\n'\n",
-    "        if len(self.vhelices) > 0:\n",
-    "            for h in self.vhelices:\n",
-    "                a = a + str(h) + ','\n",
-    "            a = a[0:len(a) - 1]\n",
-    "        a = a + '}\\n'\n",
-    "        return a\n",
-    "class vhelix (object):\n",
-    "\n",
-    "    def __init__(self):\n",
-    "        self.stapLoop = []\n",
-    "        self.scafLoop = []\n",
-    "        self.skip = []\n",
-    "        self.loop = []\n",
-    "        self.stap_colors = []\n",
-    "        self.row = 0\n",
-    "        self.col = 0\n",
-    "        self.num = 0\n",
-    "        self.stap = []\n",
-    "        self.scaf = []\n",
-    "        self.cad_index = -1\n",
-    "        self.skiploop_bases = 0\n",
-    "\n",
-    "    def get_length(self):\n",
-    "        return max (len(self.scaf), len(self.stap))\n",
-    "\n",
-    "    len = property (get_length)\n",
-    "\n",
-    "    def add_square(self, toadd, which):\n",
-    "        if which == 'stap':\n",
-    "            self.stap.append(toadd)\n",
-    "        elif which == 'scaf':\n",
-    "            self.scaf.append (toadd)\n",
-    "        else:\n",
-    "            base.Logger.log(\"Cannot add square that is not scaf or stap. Dying now\", base.Logger.CRITICAL)\n",
-    "            sys.exit(1)\n",
-    "    \n",
-    "    def __str__(self):\n",
-    "        a = '{\\n'\n",
-    "\n",
-    "        a = a + '\"stapLoop\":['\n",
-    "        if len(self.stapLoop) > 0:\n",
-    "            for i in self.stapLoop:\n",
-    "                a = a + str(i) + ','\n",
-    "            a = a[0:len(a) - 1]  # remove last comma\n",
-    "        a = a + '],\\n'\n",
-    "        a = a + '\"skip\":['\n",
-    "        if len(self.skip) > 0:\n",
-    "            for e in self.skip:\n",
-    "                a = a + str(e) + ','\n",
-    "            a = a[0:len(a) - 1]  # remove last comma\n",
-    "        a = a + '],\\n'\n",
-    "        \n",
-    "        a = a + '\"loop\":['\n",
-    "        if len(self.loop) > 0:\n",
-    "            for e in self.loop:\n",
-    "                a = a + str(e) + ','\n",
-    "            a = a[0:len(a) - 1]  # remove last comma\n",
-    "        a = a + '],\\n'\n",
-    "        \n",
-    "        a = a + '\"stap_colors\":['\n",
-    "        if len (self.stap_colors) > 0:\n",
-    "            for e in self.stap_colors:\n",
-    "                a = a + str(e) + ','\n",
-    "            a = a[0:len(a) - 1]  # remove last comma\n",
-    "        a = a + '],\\n'\n",
-    "\n",
-    "        a = a + '\"row\":' + str(self.row) + ',\\n'\n",
-    "        a = a + '\"col\":' + str(self.col) + ',\\n'\n",
-    "        a = a + '\"num\":' + str(self.num) + ',\\n'\n",
-    "        \n",
-    "        a = a + '\"scafLoop\":['\n",
-    "        if len(self.scafLoop) > 0:\n",
-    "            for i in self.scafLoop:\n",
-    "                a = a + str(i) + ','\n",
-    "            a = a[0:len(a) - 1]  # remove last comma\n",
-    "        a = a + '],\\n'\n",
-    "        \n",
-    "        a = a + '\"stap\":['\n",
-    "        if len(self.stap) > 0:\n",
-    "            for i in self.stap:\n",
-    "                a = a + str(i) + ','\n",
-    "            a = a[0:len(a) - 1]  # remove last comma\n",
-    "        a = a + '],\\n'\n",
-    "        \n",
-    "        a = a + '\"scaf\":['\n",
-    "        if len(self.scaf) > 0:\n",
-    "            for i in self.scaf:\n",
-    "                a = a + str(i) + ','\n",
-    "            a = a[0:len(a) - 1]  # remove last comma\n",
-    "        a = a + ']\\n}'\n",
-    "        return a\n",
-    "        "
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "id": "b4af37c1",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "L=[]\n",
-    "for i in df[\"vstrands\"]:\n",
-    "    L.append(i)\n",
-    "\n",
-    "cadsys = vstrands()\n",
-    "vh = vhelix()\n",
-    "for s in L:\n",
-    "    \n",
-    "    vh.stap = [ i for i in s[\"scaf\"]]\n",
-    "    vh.scaf = [i for i in s[\"stap\"]]\n",
-    "    vh.skiploop_bases = len(s[\"skip\"]) + sum(s[\"loop\"]) - sum(s[\"skip\"])\n",
-    "    cadsys.add_vhelix(vh)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 20,
-   "id": "2fa89abc",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "['__class__',\n",
-       " '__delattr__',\n",
-       " '__dict__',\n",
-       " '__dir__',\n",
-       " '__doc__',\n",
-       " '__eq__',\n",
-       " '__format__',\n",
-       " '__ge__',\n",
-       " '__getattribute__',\n",
-       " '__gt__',\n",
-       " '__hash__',\n",
-       " '__init__',\n",
-       " '__init_subclass__',\n",
-       " '__le__',\n",
-       " '__lt__',\n",
-       " '__module__',\n",
-       " '__ne__',\n",
-       " '__new__',\n",
-       " '__reduce__',\n",
-       " '__reduce_ex__',\n",
-       " '__repr__',\n",
-       " '__setattr__',\n",
-       " '__sizeof__',\n",
-       " '__str__',\n",
-       " '__subclasshook__',\n",
-       " '__weakref__',\n",
-       " 'add_square',\n",
-       " 'cad_index',\n",
-       " 'col',\n",
-       " 'get_length',\n",
-       " 'len',\n",
-       " 'loop',\n",
-       " 'num',\n",
-       " 'row',\n",
-       " 'scaf',\n",
-       " 'scafLoop',\n",
-       " 'skip',\n",
-       " 'skiploop_bases',\n",
-       " 'stap',\n",
-       " 'stapLoop',\n",
-       " 'stap_colors']"
-      ]
-     },
-     "execution_count": 20,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "s0=cadsys.vhelices[0]\n",
-    "dir(s0)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 25,
-   "id": "6e620d24",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "[[-1, -1, -1, -1],\n",
-       " [-1, -1, -1, -1],\n",
-       " [-1, -1, -1, -1],\n",
-       " [-1, -1, -1, -1],\n",
-       " [-1, -1, -1, -1],\n",
-       " [-1, -1, -1, -1],\n",
-       " [-1, -1, -1, -1],\n",
-       " [-1, -1, -1, -1],\n",
-       " [-1, -1, -1, -1],\n",
-       " [-1, -1, 5, 10],\n",
-       " [5, 9, 5, 11],\n",
-       " [5, 10, 5, 12],\n",
-       " [5, 11, 5, 13],\n",
-       " [5, 12, 5, 14],\n",
-       " [5, 13, 5, 15],\n",
-       " [5, 14, 5, 16],\n",
-       " [5, 15, 5, 17],\n",
-       " [5, 16, 5, 18],\n",
-       " [5, 17, 5, 19],\n",
-       " [5, 18, 5, 20],\n",
-       " [5, 19, 5, 21],\n",
-       " [5, 20, 5, 22],\n",
-       " [5, 21, 5, 23],\n",
-       " [5, 22, 5, 24],\n",
-       " [5, 23, 5, 25],\n",
-       " [5, 24, 5, 26],\n",
-       " [5, 25, 5, 27],\n",
-       " [5, 26, 0, 27],\n",
-       " [0, 28, 5, 29],\n",
-       " [5, 28, 5, 30],\n",
-       " [5, 29, 5, 31],\n",
-       " [5, 30, 5, 32],\n",
-       " [5, 31, 5, 33],\n",
-       " [5, 32, 5, 34],\n",
-       " [5, 33, 5, 35],\n",
-       " [5, 34, 5, 36],\n",
-       " [5, 35, 5, 37],\n",
-       " [5, 36, 5, 38],\n",
-       " [5, 37, 5, 39],\n",
-       " [5, 38, -1, -1],\n",
-       " [-1, -1, -1, -1],\n",
-       " [-1, -1, -1, -1]]"
-      ]
-     },
-     "execution_count": 25,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "s0.scaf"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "fef6094a",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "for s in s0.scaf:\n",
-    "    if s[0]==-1 and s[1]==-1:\n",
-    "        pass\n",
-    "    elif s[2]==len(s0.scaf) and abs(s[3])==1"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 13,
-   "id": "be089a18",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "[-1, -1, -1, -1]"
-      ]
-     },
-     "execution_count": 13,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "s0.scaf[0]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 7,
-   "id": "6f75d365",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "['__class__',\n",
-       " '__delattr__',\n",
-       " '__dict__',\n",
-       " '__dir__',\n",
-       " '__doc__',\n",
-       " '__eq__',\n",
-       " '__format__',\n",
-       " '__ge__',\n",
-       " '__getattribute__',\n",
-       " '__gt__',\n",
-       " '__hash__',\n",
-       " '__init__',\n",
-       " '__init_subclass__',\n",
-       " '__le__',\n",
-       " '__lt__',\n",
-       " '__module__',\n",
-       " '__ne__',\n",
-       " '__new__',\n",
-       " '__reduce__',\n",
-       " '__reduce_ex__',\n",
-       " '__repr__',\n",
-       " '__setattr__',\n",
-       " '__sizeof__',\n",
-       " '__str__',\n",
-       " '__subclasshook__',\n",
-       " '__weakref__',\n",
-       " 'add_vhelix',\n",
-       " 'bbox',\n",
-       " 'vhelices']"
-      ]
-     },
-     "execution_count": 7,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "dir(cadsys)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 36,
-   "id": "8dfadf61",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "[[5, 1, -1, -1],\n",
-       " [5, 2, 5, 0],\n",
-       " [5, 3, 5, 1],\n",
-       " [-1, -1, 5, 2],\n",
-       " [-1, -1, -1, -1],\n",
-       " [-1, -1, -1, -1],\n",
-       " [-1, -1, -1, -1],\n",
-       " [-1, -1, -1, -1],\n",
-       " [-1, -1, -1, -1],\n",
-       " [5, 10, 4, 9],\n",
-       " [5, 11, 5, 9],\n",
-       " [5, 12, 5, 10],\n",
-       " [5, 13, 5, 11],\n",
-       " [5, 14, 5, 12],\n",
-       " [5, 15, 5, 13],\n",
-       " [5, 16, 5, 14],\n",
-       " [5, 17, 5, 15],\n",
-       " [5, 18, 5, 16],\n",
-       " [5, 19, 5, 17],\n",
-       " [5, 20, 5, 18],\n",
-       " [5, 21, 5, 19],\n",
-       " [5, 22, 5, 20],\n",
-       " [-1, -1, 5, 21],\n",
-       " [5, 24, -1, -1],\n",
-       " [5, 25, 5, 23],\n",
-       " [5, 26, 5, 24],\n",
-       " [5, 27, 5, 25],\n",
-       " [5, 28, 5, 26],\n",
-       " [5, 29, 5, 27],\n",
-       " [5, 30, 5, 28],\n",
-       " [5, 31, 5, 29],\n",
-       " [5, 32, 5, 30],\n",
-       " [5, 33, 5, 31],\n",
-       " [5, 34, 5, 32],\n",
-       " [5, 35, 5, 33],\n",
-       " [5, 36, 5, 34],\n",
-       " [5, 37, 5, 35],\n",
-       " [5, 38, 5, 36],\n",
-       " [5, 39, 5, 37],\n",
-       " [4, 39, 5, 38],\n",
-       " [-1, -1, -1, -1],\n",
-       " [-1, -1, -1, -1]]"
-      ]
-     },
-     "execution_count": 36,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "vh.stap"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "id": "ba097c82",
-   "metadata": {},
-   "outputs": [
-    {
-     "ename": "ModuleNotFoundError",
-     "evalue": "No module named 'mrdna'",
-     "output_type": "error",
-     "traceback": [
-      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
-      "\u001b[0;31mModuleNotFoundError\u001b[0m                       Traceback (most recent call last)",
-      "Cell \u001b[0;32mIn[1], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mmrdna\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mreaders\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcadnano_segments\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;241m*\u001b[39m\n\u001b[1;32m      2\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mcadnano\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mdocument\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Document\n\u001b[1;32m      3\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mcadnano\u001b[39;00m\n",
-      "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'mrdna'"
-     ]
-    }
-   ],
-   "source": [
-    "\n",
-    "\n",
-    "from mrdna.readers.cadnano_segments import *\n",
-    "from cadnano.document import Document\n",
-    "import cadnano"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "1c4d4fa9",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 3,
-   "id": "d4ff1f83",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Found cadnano version 2 file\n"
-     ]
-    }
-   ],
-   "source": [
-    "json_data=read_json_file(\"test.json\")\n",
-    "part=decode_cadnano_part(json_data)\n",
-    "model=cadnano_part(part)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 13,
-   "id": "6f1dab46",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Found cadnano version 2 file\n"
-     ]
-    }
-   ],
-   "source": [
-    "doc=Document()\n",
-    "cadnano.fileio.v2decode.decode(doc, json_data)\n",
-    "parts = [p for p in doc.getParts()]\n",
-    "part=parts[0]\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 15,
-   "id": "615964fe",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Oligo_(0.1[38])_1328\t23\t'None\n",
-      "Oligo_(2.1[34])_9584\t35\t'None\n",
-      "Oligo_(1.1[36])_7488\t188\t'None\n",
-      "Oligo_(4.1[39])_4384\t33\t'None\n",
-      "Oligo_(5.0[9])_0240\t23\t'None\n",
-      "Oligo_(1.0[3])_8256\t37\t'None\n",
-      "Oligo_(3.0[0])_3296\t33\t'None\n",
-      "Oligo_(0.1[23])_9088\t21\t'None\n",
-      "VH0\n",
-      "\t <fwd_StrandSet(0)> \t [(5, 36)] \n",
-      "\t\t\t\t ['#0066cc']\n",
-      "\t <rev_StrandSet(0)> \t [(2, 20), (21, 23), (24, 27), (28, 38)] \n",
-      "\t\t\t\t ['#cc0000', '#b8056c', '#f74308', '#1700de']\n",
-      "VH1\n",
-      "\t <fwd_StrandSet(1)> \t [(3, 20), (21, 38)] \n",
-      "\t\t\t\t ['#cc0000', '#b8056c']\n",
-      "\t <rev_StrandSet(1)> \t [(5, 18), (19, 36)] \n",
-      "\t\t\t\t ['#0066cc', '#0066cc']\n",
-      "VH2\n",
-      "\t <fwd_StrandSet(2)> \t [(2, 18), (19, 32)] \n",
-      "\t\t\t\t ['#0066cc', '#0066cc']\n",
-      "\t <rev_StrandSet(2)> \t [(0, 34)] \n",
-      "\t\t\t\t ['#888888']\n",
-      "VH3\n",
-      "\t <fwd_StrandSet(3)> \t [(0, 20), (21, 34)] \n",
-      "\t\t\t\t ['#cc0000', '#888888']\n",
-      "\t <rev_StrandSet(3)> \t [(2, 15), (16, 32)] \n",
-      "\t\t\t\t ['#0066cc', '#0066cc']\n",
-      "VH4\n",
-      "\t <fwd_StrandSet(4)> \t [(9, 15), (16, 39)] \n",
-      "\t\t\t\t ['#0066cc', '#0066cc']\n",
-      "\t <rev_StrandSet(4)> \t [(9, 20), (21, 39)] \n",
-      "\t\t\t\t ['#cc0000', '#888888']\n",
-      "VH5\n",
-      "\t <fwd_StrandSet(5)> \t [(9, 27), (28, 39)] \n",
-      "\t\t\t\t ['#f74308', '#1700de']\n",
-      "\t <rev_StrandSet(5)> \t [(9, 39)] \n",
-      "\t\t\t\t ['#0066cc']\n"
-     ]
-    }
-   ],
-   "source": [
-    "part.__dict__.keys()\n",
-    "\n",
-    "oligos = part.oligos()\n",
-    "for oligo in oligos:\n",
-    "    print(\"{0}\\t{1}\\t\\'{2}\".format(oligo,\n",
-    "                                          oligo.length(),\n",
-    "                                          oligo.sequence()))\n",
-    "\n",
-    "vhs = list(part.getIdNums())  # convert set to list\n",
-    "for vh_id in vhs:         # display first 3 vhs\n",
-    "    fwd_ss, rev_ss = part.getStrandSets(vh_id)\n",
-    "    print('VH{0}'.format(vh_id))\n",
-    "    print('\\t', fwd_ss, '\\t', [s.idxs() for s in fwd_ss.strands()], '\\n\\t\\t\\t\\t',\n",
-    "          [s.getColor() for s in fwd_ss.strands()])\n",
-    "    print('\\t', rev_ss, '\\t', [s.idxs() for s in rev_ss.strands()], '\\n\\t\\t\\t\\t',\n",
-    "          [s.getColor() for s in rev_ss.strands()])"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 16,
-   "id": "a71b0639",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "strands5 = [o.strand5p() for o in part.oligos()]\n",
-    "strands3 = [o.strand3p() for o in part.oligos()]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 26,
-   "id": "2bb83a1e",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "['__class__',\n",
-       " '__delattr__',\n",
-       " '__dict__',\n",
-       " '__dir__',\n",
-       " '__doc__',\n",
-       " '__eq__',\n",
-       " '__format__',\n",
-       " '__ge__',\n",
-       " '__getattribute__',\n",
-       " '__gt__',\n",
-       " '__hash__',\n",
-       " '__init__',\n",
-       " '__init_subclass__',\n",
-       " '__le__',\n",
-       " '__lt__',\n",
-       " '__module__',\n",
-       " '__ne__',\n",
-       " '__new__',\n",
-       " '__reduce__',\n",
-       " '__reduce_ex__',\n",
-       " '__repr__',\n",
-       " '__setattr__',\n",
-       " '__sizeof__',\n",
-       " '__slots__',\n",
-       " '__str__',\n",
-       " '__subclasshook__',\n",
-       " '__weakref__',\n",
-       " '_decrementLength',\n",
-       " '_incrementLength',\n",
-       " '_is_circular',\n",
-       " '_parent',\n",
-       " '_part',\n",
-       " '_props',\n",
-       " '_setColor',\n",
-       " '_setLength',\n",
-       " '_setLoop',\n",
-       " '_setProperty',\n",
-       " '_signals',\n",
-       " '_strand5p',\n",
-       " '_strandMergeUpdate',\n",
-       " '_strandSplitUpdate',\n",
-       " 'addToPart',\n",
-       " 'applyAbstractSequences',\n",
-       " 'applyColor',\n",
-       " 'applySequence',\n",
-       " 'applySequenceCMD',\n",
-       " 'clearAbstractSequences',\n",
-       " 'connect',\n",
-       " 'deleteLater',\n",
-       " 'destroy',\n",
-       " 'disconnect',\n",
-       " 'displayAbstractSequences',\n",
-       " 'dump',\n",
-       " 'editable_properties',\n",
-       " 'getAbsolutePositionAtLength',\n",
-       " 'getColor',\n",
-       " 'getModelProperties',\n",
-       " 'getName',\n",
-       " 'getNumberOfBasesToEachXover',\n",
-       " 'getOutlineProperties',\n",
-       " 'getProperty',\n",
-       " 'getStrandLengths',\n",
-       " 'isCircular',\n",
-       " 'length',\n",
-       " 'locString',\n",
-       " 'oligoPropertyChangedSignal',\n",
-       " 'oligoRemovedSignal',\n",
-       " 'oligoSelectedChangedSignal',\n",
-       " 'oligoSequenceAddedSignal',\n",
-       " 'oligoSequenceClearedSignal',\n",
-       " 'parent',\n",
-       " 'part',\n",
-       " 'refreshLength',\n",
-       " 'remove',\n",
-       " 'removeFromPart',\n",
-       " 'sequence',\n",
-       " 'sequenceExport',\n",
-       " 'setParent',\n",
-       " 'setPart',\n",
-       " 'setProperty',\n",
-       " 'setStrand5p',\n",
-       " 'shallowCopy',\n",
-       " 'shouldHighlight',\n",
-       " 'signals',\n",
-       " 'splitAtAbsoluteLengths',\n",
-       " 'strand3p',\n",
-       " 'strand5p',\n",
-       " 'undoStack']"
-      ]
-     },
-     "execution_count": 26,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "L=[o for o in part.oligos()]\n",
-    "dir(L[2])\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 25,
-   "id": "86f5c21e",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "defaultdict(dict, {0: {}, 1: {}, 2: {}, 3: {}, 4: {}, 5: {}})"
-      ]
-     },
-     "execution_count": 25,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "part.insertions()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 10,
-   "id": "f3fae511",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "{'name': 'NaPart1',\n",
-       " 'color': '#0066cc',\n",
-       " 'is_visible': True,\n",
-       " 'active_phos': None,\n",
-       " 'crossover_span_angle': 45,\n",
-       " 'max_vhelix_length': 42,\n",
-       " 'neighbor_active_angle': '',\n",
-       " 'grid_type': <GridEnum.HONEYCOMB: 2>,\n",
-       " 'virtual_helix_order': [0, 1, 2, 3, 4, 5],\n",
-       " 'is_lattice': True,\n",
-       " <GridEnum.HONEYCOMB: 2>: <GridEnum.NONE: 0>}"
-      ]
-     },
-     "execution_count": 10,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "part.getModelProperties()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "id": "07f3352b",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "             _\n",
-      " _____ ___ _| |___ ___\n",
-      "|     |  _| . |   | .'|\n",
-      "|_|_|_|_| |___|_|_|__,|  v1.0a.dev74  \n",
-      "it/its\n",
-      "\n"
-     ]
-    }
-   ],
-   "source": [
-    "import pdb\n",
-    "import numpy as np\n",
-    "import os,sys\n",
-    "import scipy\n",
-    "\n",
-    "from mrdna import logger, devlogger\n",
-    "from mrdna.segmentmodel import SegmentModel, SingleStrandedSegment, DoubleStrandedSegment\n",
-    "from mrdna.arbdmodel.coords import quaternion_from_matrix, rotationAboutAxis, quaternion_slerp\n",
-    "from mrdna import get_resource_path\n",
-    "\n",
-    "ref_stack_position = np.array((-2.41851735, -0.259761333, 3.39999978))\n",
-    "\n",
-    "def _three_prime_list_to_five_prime(three_prime):\n",
-    "    five_prime = -np.ones(three_prime.shape, dtype=int)\n",
-    "    has_three_prime = np.where(three_prime >= 0)[0]\n",
-    "    five_prime[three_prime[has_three_prime]] = has_three_prime\n",
-    "    return five_prime  \n",
-    "def _primes_list_to_strands(three_prime, five_prime):\n",
-    "    five_prime_ends = np.where(five_prime < 0)[0]\n",
-    "    strands = []\n",
-    "    strand_is_circular = []\n",
-    "    \n",
-    "    idx_to_strand = -np.ones(three_prime.shape, dtype=int)\n",
-    "\n",
-    "    def build_strand(nt_idx, conditional):\n",
-    "        strand = [nt_idx]\n",
-    "        idx_to_strand[nt_idx] = len(strands)\n",
-    "        while conditional(nt_idx):\n",
-    "            nt_idx = three_prime[nt_idx]\n",
-    "            strand.append(nt_idx)\n",
-    "            idx_to_strand[nt_idx] = len(strands)\n",
-    "        strands.append( np.array(strand, dtype=int) )\n",
-    "\n",
-    "    for nt_idx in five_prime_ends:\n",
-    "        build_strand(nt_idx,\n",
-    "                     lambda nt: three_prime[nt] >= 0)\n",
-    "        strand_is_circular.append(False)\n",
-    "\n",
-    "    while True:\n",
-    "        ## print(\"WARNING: working on circular strand {}\".format(len(strands)))\n",
-    "        ids = np.where(idx_to_strand < 0)[0]\n",
-    "        if len(ids) == 0: break\n",
-    "        build_strand(ids[0],\n",
-    "                     lambda nt: three_prime[nt] >= 0 and \\\n",
-    "                     idx_to_strand[three_prime[nt]] < 0)\n",
-    "        strand_is_circular.append(True)\n",
-    "\n",
-    "    return strands, strand_is_circular\n",
-    "\n",
-    "def find_stacks(centers, transforms):\n",
-    "\n",
-    "    ## Find orientation and center of each nucleotide\n",
-    "    expected_stack_positions = []\n",
-    "    for R,c in zip(transforms,centers):\n",
-    "        expected_stack_positions.append( c + ref_stack_position.dot(R) )\n",
-    "\n",
-    "    expected_stack_positions = np.array(expected_stack_positions, dtype=np.float32)\n",
-    "\n",
-    "    dists = scipy.spatial.distance_matrix(expected_stack_positions, centers)\n",
-    "    dists = dists + 5*np.eye(len(dists))\n",
-    "    idx1, idx2 = np.where(dists < 3.5)\n",
-    "\n",
-    "    ## Convert distances to stacks\n",
-    "    stacks_above = -np.ones(len(centers), dtype=int)\n",
-    "    _z = np.array((0,0,1))\n",
-    "    for i in np.unique(idx1):\n",
-    "        js = idx2[ idx1 == i ]\n",
-    "        with np.errstate(divide='ignore',invalid='ignore'):\n",
-    "            angles = [np.arccos( transforms[j].T.dot( transforms[i].dot(_z) ).dot( _z ) ) for j in js]\n",
-    "        angles = np.array( angles )\n",
-    "        tmp = np.argmin(dists[i][js] + 1.0*angles)\n",
-    "        j = js[tmp]\n",
-    "        stacks_above[i] = j\n",
-    "\n",
-    "    return stacks_above\n",
-    "\n",
-    "def basepairs_and_stacks_to_helixmap(basepairs,stacks_above):\n",
-    "\n",
-    "    helixmap = -np.ones(basepairs.shape, dtype=int)\n",
-    "    helixrank = -np.ones(basepairs.shape)\n",
-    "    is_fwd = np.ones(basepairs.shape, dtype=int)\n",
-    "    \n",
-    "    ## Remove stacks with nts lacking a basepairs\n",
-    "    nobp = np.where(basepairs < 0)[0]\n",
-    "    stacks_above[nobp] = -1\n",
-    "    stacks_with_nobp = np.in1d(stacks_above, nobp)\n",
-    "    stacks_above[stacks_with_nobp] = -1\n",
-    "\n",
-    "    end_ids = np.where( (stacks_above < 0)*(basepairs >= 0) )[0]\n",
-    "\n",
-    "    hid = 0\n",
-    "    for end in end_ids:\n",
-    "        if helixmap[end] >= 0:\n",
-    "            continue\n",
-    "        rank = 0\n",
-    "        nt = basepairs[end]\n",
-    "        bp = basepairs[nt]\n",
-    "        assert( bp == end )\n",
-    "        if helixmap[nt] >= 0 or helixmap[bp] >= 0:\n",
-    "            logger.warning(f'Ill-formed helix: problematic basepair or stacking data near nucleotide {nt} or {bp}... skipping')\n",
-    "            continue\n",
-    "        # assert(helixmap[nt] == -1)\n",
-    "        # assert(helixmap[bp] == -1)\n",
-    "        helixmap[nt] = helixmap[bp] = hid\n",
-    "        helixrank[nt] = helixrank[bp] = rank\n",
-    "        is_fwd[bp] = 0\n",
-    "        rank +=1\n",
-    "\n",
-    "        _tmp = [(nt,bp)]\n",
-    "        \n",
-    "        while stacks_above[nt] >= 0:\n",
-    "            nt = stacks_above[nt]\n",
-    "            if basepairs[nt] < 0: break\n",
-    "            bp = basepairs[nt]\n",
-    "            if helixmap[nt] >= 0 or helixmap[bp] >= 0:\n",
-    "                logger.warning(f'Ill-formed helix: problematic basepair or stacking data near nucleotide {nt} or {bp}... skipping')\n",
-    "                break\n",
-    "            helixmap[nt] = helixmap[bp] = hid\n",
-    "            helixrank[nt] = helixrank[bp] = rank\n",
-    "            is_fwd[bp] = 0\n",
-    "            _tmp.append((nt,bp))\n",
-    "            rank +=1\n",
-    "\n",
-    "        hid += 1\n",
-    "\n",
-    "    ## Create \"helix\" for each circular segment\n",
-    "    intrahelical = []\n",
-    "    processed = set()\n",
-    "    unclaimed_bases = np.where( (basepairs >= 0)*(helixmap == -1) )[0]\n",
-    "    for nt0 in unclaimed_bases:\n",
-    "        if nt0 in processed: continue\n",
-    "\n",
-    "        nt = nt0\n",
-    "        all_nts = [nt]\n",
-    "\n",
-    "        rank = 0\n",
-    "        nt = nt0\n",
-    "        bp = basepairs[nt]\n",
-    "        if helixmap[nt] >= 0 or helixmap[bp] >= 0:\n",
-    "            logger.warning(f'Ill-formed cylic helix: problematic basepair or stacking data near nucleotide {nt} or {bp}... skipping')\n",
-    "            continue\n",
-    "        helixmap[nt] = helixmap[bp] = hid\n",
-    "        helixrank[nt] = helixrank[bp] = rank\n",
-    "        is_fwd[bp] = 0\n",
-    "        rank +=1\n",
-    "        processed.add(nt)\n",
-    "        processed.add(bp)\n",
-    "\n",
-    "        counter = 0\n",
-    "        while stacks_above[nt] >= 0:\n",
-    "            lastnt = nt\n",
-    "            nt = stacks_above[nt]\n",
-    "            bp = basepairs[nt]\n",
-    "            if nt == nt0 or nt == basepairs[nt0]:\n",
-    "                intrahelical.append((lastnt,nt0))\n",
-    "                break\n",
-    "                \n",
-    "            assert( bp >= 0 )\n",
-    "            if helixmap[nt] >= 0 or helixmap[bp] >= 0:\n",
-    "                logger.warning(f'Ill-formed cyclic helix: problematic basepair or stacking data near nucleotide {nt} or {bp}... skipping')\n",
-    "                break\n",
-    "            \n",
-    "            helixmap[nt] = helixmap[bp] = hid\n",
-    "            helixrank[nt] = helixrank[bp] = rank\n",
-    "            is_fwd[bp] = 0\n",
-    "            processed.add(nt)\n",
-    "            processed.add(bp)\n",
-    "            rank +=1\n",
-    "        hid += 1\n",
-    "\n",
-    "    return helixmap, helixrank, is_fwd, intrahelical\n",
-    "\n",
-    "\n",
-    "def set_splines(seg, coordinate, hid, hmap, hrank, fwd, basepair, orientation=None):\n",
-    "    maxrank = np.max( hrank[hmap==hid] )\n",
-    "    if maxrank == 0:\n",
-    "        ids = np.where((hmap == hid))[0]\n",
-    "        pos = np.mean( [coordinate[r,:] for r in ids ], axis=0 )\n",
-    "        coords = [pos,pos]\n",
-    "        contours = [0,1]\n",
-    "        if orientation is not None:\n",
-    "            ids = np.where((hmap == hid) * fwd)[0]\n",
-    "            assert( len(ids) == 1 )\n",
-    "            q = quaternion_from_matrix( orientation[ids[0]] )\n",
-    "            quats = [q, q]\n",
-    "            coords[-1] = pos + orientation[ids[0]].dot(np.array((0,0,1)))\n",
-    "\n",
-    "    else:\n",
-    "        coords,contours,quats = [[],[],[]]\n",
-    "        last_q = None\n",
-    "        for rank in range(int(maxrank)+1):\n",
-    "            ids = np.where((hmap == hid) * (hrank == rank))[0]\n",
-    "                \n",
-    "            coords.append(np.mean( [coordinate[r,:] for r in ids ], axis=0 ))\n",
-    "            contours.append( float(rank+0.5)/(maxrank+1) )\n",
-    "            if orientation is not None:\n",
-    "                ids = np.where((hmap == hid) * (hrank == rank) * fwd)[0]\n",
-    "                assert(len(ids) == 1)\n",
-    "                q = quaternion_from_matrix( orientation[ids[0]] )\n",
-    "\n",
-    "                if last_q is not None and last_q.dot(q) < 0:\n",
-    "                    q = -q\n",
-    "\n",
-    "                ## Average quaterion with reverse direction\n",
-    "                bp = basepair[ids[0]]\n",
-    "                if bp >= 0:\n",
-    "                    bp_o = orientation[bp].dot(rotationAboutAxis(np.array((1,0,0)),180))\n",
-    "                    q2 = quaternion_from_matrix( bp_o )\n",
-    "                    if q.dot(q2) < 0:\n",
-    "                        q2 = -q2\n",
-    "\n",
-    "                    ## probably good enough, but slerp is better: q = (q + q2)*0.5\n",
-    "                    q = quaternion_slerp(q,q2,0.5)\n",
-    "\n",
-    "                quats.append(q)\n",
-    "                last_q = q\n",
-    "\n",
-    "    coords = np.array(coords)\n",
-    "    seg.set_splines(contours,coords)\n",
-    "    if orientation is not None:\n",
-    "        quats = np.array(quats)\n",
-    "        seg.set_orientation_splines(contours,quats)\n",
-    "\n",
-    "    seg.start_position = coords[0,:]\n",
-    "    seg.end_position = coords[-1,:]\n",
-    "\n",
-    "\n",
-    "def model_from_basepair_stack_3prime(coordinate, basepair, stack, three_prime,\n",
-    "                                     sequence=None, orientation=None,\n",
-    "                                     max_basepairs_per_bead = 5,\n",
-    "                                     max_nucleotides_per_bead = 5,\n",
-    "                                     local_twist = False,\n",
-    "                                     dimensions=(5000,5000,5000),\n",
-    "                                     **model_parameters):\n",
-    "    \"\"\" \n",
-    "    Creates a SegmentModel object from lists of each nucleotide's\n",
-    "    basepair, its stack (on 3' side) and its 3'-connected nucleotide\n",
-    "\n",
-    "    The first argument should be an N-by-3 numpy array containing the\n",
-    "    coordinate of each nucleotide, where N is the number of\n",
-    "    nucleotides. The following three arguments should be integer lists\n",
-    "    where the i-th element corresponds to the i-th nucleotide; the\n",
-    "    list element should the integer index of the corresponding\n",
-    "    basepaired / stacked / phosphodiester-bonded nucleotide. If there\n",
-    "    is no such nucleotide, the value should be -1.\n",
-    "\n",
-    "    Args:\n",
-    "        basepair:  List of each nucleotide's basepair's index\n",
-    "        stack:  List containing index of the nucleotide stacked on the 3' of each nucleotide\n",
-    "        three_prime:  List of each nucleotide's the 3' end of each nucleotide\n",
-    "\n",
-    "    Returns:\n",
-    "        SegmentModel\n",
-    "    \"\"\"\n",
-    "\n",
-    "    \"\"\" Validate Input \"\"\"\n",
-    "    inputs = (basepair,three_prime)\n",
-    "    try:\n",
-    "        basepair,three_prime = [np.array(a,dtype=int) for a in inputs]\n",
-    "    except:\n",
-    "        raise TypeError(\"One or more of the input lists could not be converted into a numpy array\")\n",
-    "    inputs = (basepair,three_prime)\n",
-    "    coordinate = np.array(coordinate)\n",
-    "\n",
-    "    if np.any( [len(a.shape) > 1 for a in inputs] ):\n",
-    "        raise ValueError(\"One or more of the input lists has the wrong dimensionality\")\n",
-    "\n",
-    "    if len(coordinate.shape) != 2:\n",
-    "        raise ValueError(\"Coordinate array has the wrong dimensionality\")\n",
-    "\n",
-    "    inputs = (coordinate,basepair,three_prime)\n",
-    "    if not np.all(np.diff([len(a) for a in inputs]) == 0):\n",
-    "        raise ValueError(\"Inputs are not the same length\")\n",
-    "        \n",
-    "    num_nt = len(basepair)\n",
-    "    if sequence is not None and len(sequence) != num_nt:\n",
-    "        raise ValueError(\"The 'sequence' parameter is the wrong length {} != {}\".format(len(sequence),num_nt))\n",
-    "\n",
-    "    if orientation is not None:\n",
-    "        orientation = np.array(orientation)\n",
-    "        if len(orientation.shape) != 3:\n",
-    "            raise ValueError(\"The 'orientation' array has the wrong dimensionality (should be Nx3x3)\")\n",
-    "        if orientation.shape != (num_nt,3,3):\n",
-    "            raise ValueError(\"The 'orientation' array is not properly formatted\")\n",
-    "\n",
-    "    if stack is None:\n",
-    "        if orientation is not None:\n",
-    "            stack = find_stacks(coordinate, orientation)\n",
-    "        else:\n",
-    "            ## Guess stacking based on 3' connectivity\n",
-    "            stack = np.array(three_prime,dtype=int) # Assume nts on 3' ends are stacked\n",
-    "            _stack_below = _three_prime_list_to_five_prime(stack)\n",
-    "            _has_bp = (basepair >= 0)\n",
-    "            _nostack = np.where( (stack == -1)*_has_bp )[0]\n",
-    "            _has_stack_below = _stack_below[basepair[_nostack]] >= 0\n",
-    "            _nostack2 = _nostack[_has_stack_below]\n",
-    "            stack[_nostack2] = basepair[_stack_below[basepair[_nostack2]]]\n",
-    "\n",
-    "    else:\n",
-    "        try:\n",
-    "            stack = np.array(stack,dtype=int)\n",
-    "        except:\n",
-    "            raise TypeError(\"The 'stack' array could not be converted into a numpy integer array\")\n",
-    "\n",
-    "        if len(stack.shape) != 1:\n",
-    "            raise ValueError(\"The 'stack' array has the wrong dimensionality\")\n",
-    "\n",
-    "        if len(stack) != num_nt:\n",
-    "            raise ValueError(\"The length of the 'stack' array does not match other inputs\")\n",
-    "\n",
-    "    bps = basepair              # alias\n",
-    "\n",
-    "    \"\"\" Fix stacks: require that the stack of a bp of a base's stack is its bp \"\"\"\n",
-    "    _has_bp =  (bps >= 0)\n",
-    "    _has_stack = (stack >= 0)\n",
-    "    _stack_has_basepair = (bps[stack] >= 0) * _has_stack\n",
-    "    stack = np.where( (stack[bps[stack]] == bps) * _has_bp * _has_stack * _has_bp,\n",
-    "                      stack, -np.ones(len(stack),dtype=int) )\n",
-    "\n",
-    "    five_prime = _three_prime_list_to_five_prime(three_prime)\n",
-    "\n",
-    "    \"\"\" Build map of dsDNA helices and strands \"\"\"\n",
-    "    hmap,hrank,fwd,intrahelical = basepairs_and_stacks_to_helixmap(bps,stack)\n",
-    "    double_stranded_helices = np.unique(hmap[hmap >= 0])    \n",
-    "    strands, strand_is_circular = _primes_list_to_strands(three_prime, five_prime)\n",
-    "\n",
-    "    \"\"\" Add ssDNA to hmap \"\"\"\n",
-    "    if len(double_stranded_helices) > 0:\n",
-    "        hid = double_stranded_helices[-1]+1\n",
-    "    else:\n",
-    "        hid = 0\n",
-    "    ss_residues = hmap < 0\n",
-    "    #\n",
-    "    if np.any(bps[ss_residues] != -1):\n",
-    "        logger.warning(f'{np.sum(bps[ss_residues] != -1)} ssDNA nucleotides appear to have basepairs... ignoring')\n",
-    "    \n",
-    "    for s,c in zip(strands, strand_is_circular):\n",
-    "        strand_segment_ends = [i for i in np.where( np.diff(hmap[s]) != 0 )[0]] + [len(s)-1]\n",
-    "        seg_start = 0\n",
-    "        for i in strand_segment_ends:\n",
-    "            if hmap[s[i]] < 0:\n",
-    "                ## Found single-stranded segment\n",
-    "                ids = s[seg_start:i+1]\n",
-    "                assert( np.all(hmap[ids] == -1) )\n",
-    "                hmap[ids] = hid\n",
-    "                hrank[ids] = np.arange(i+1-seg_start)\n",
-    "                hid+=1\n",
-    "            seg_start = i+1\n",
-    "\n",
-    "    if len(double_stranded_helices) > 0:\n",
-    "        single_stranded_helices = np.arange(double_stranded_helices[-1]+1,hid)\n",
-    "    else:\n",
-    "        single_stranded_helices = np.arange(hid)\n",
-    "\n",
-    "    ## Create double-stranded segments\n",
-    "    doubleSegments = []\n",
-    "    for hid in double_stranded_helices:\n",
-    "        seg = DoubleStrandedSegment(name=str(hid),\n",
-    "                                    num_bp = np.sum(hmap==hid)//2)\n",
-    "        set_splines(seg, coordinate, hid, hmap, hrank, fwd, basepair, orientation)\n",
-    "\n",
-    "        assert(hid == len(doubleSegments))\n",
-    "        doubleSegments.append(seg)\n",
-    "\n",
-    "    ## Create single-stranded segments\n",
-    "    singleSegments = []\n",
-    "    for hid in single_stranded_helices:\n",
-    "        seg = SingleStrandedSegment(name=str(hid),\n",
-    "                                    num_nt = np.sum(hmap==hid))\n",
-    "        set_splines(seg, coordinate, hid, hmap, hrank, fwd, basepair, orientation)\n",
-    "\n",
-    "        assert(hid == len(doubleSegments) + len(singleSegments))\n",
-    "        singleSegments.append(seg)\n",
-    "\n",
-    "    ## Find crossovers and 5prime/3prime ends\n",
-    "    crossovers,prime5,prime3 = [[],[],[]]\n",
-    "    for s,c in zip(strands,strand_is_circular):\n",
-    "        tmp = np.where(np.diff(hmap[s]) != 0)[0]\n",
-    "        for i in tmp:\n",
-    "            crossovers.append( (s[i],s[i+1]) )\n",
-    "        if c:\n",
-    "            if hmap[s[-1]] != hmap[s[0]]:\n",
-    "                crossovers.append( (s[-1],s[0]) )\n",
-    "        else:\n",
-    "            prime5.append(s[0])\n",
-    "            prime3.append(s[-1])\n",
-    "\n",
-    "    ## Add connections\n",
-    "    allSegments = doubleSegments+singleSegments\n",
-    "\n",
-    "    for r1,r2 in crossovers:\n",
-    "        seg1,seg2 = [allSegments[hmap[i]] for i in (r1,r2)]\n",
-    "        nt1,nt2 = [hrank[i] for i in (r1,r2)]\n",
-    "        f1,f2 = [fwd[i] for i in (r1,r2)]\n",
-    "\n",
-    "        ## Handle connections at the ends\n",
-    "        is_terminal1 = (nt1,f1) in ((0,0),(seg1.num_nt-1,1))\n",
-    "        is_terminal2 = (nt2,f2) in ((0,1),(seg2.num_nt-1,0))\n",
-    "\n",
-    "        print(seg1,seg2, r1, r2, is_terminal1, is_terminal2)\n",
-    "        if is_terminal1 or is_terminal2:\n",
-    "            \"\"\" Ensure that we don't have three-way dsDNA junctions \"\"\"\n",
-    "            if is_terminal1 and (bps[r1] >= 0) and (five_prime[bps[r1]] >= 0) and (three_prime[r1] >= 0):\n",
-    "                if (bps[five_prime[bps[r1]]] >= 0) and (bps[three_prime[r1]] >= 0):\n",
-    "                    # is_terminal1 = (three_prime[r1] == bps[five_prime[bps[r1]]])\n",
-    "                    is_terminal1 = hmap[five_prime[bps[r1]]] == hmap[three_prime[r1]]\n",
-    "            if is_terminal2 and (bps[r2] >= 0) and (three_prime[bps[r2]] >= 0) and (five_prime[r2] >= 0):\n",
-    "                if (bps[three_prime[bps[r2]]] >= 0) and (bps[five_prime[r2]] >= 0):\n",
-    "                    # is_terminal2 = (five_prime[r2] == bps[three_prime[bps[r2]]])\n",
-    "                    is_terminal2 = hmap[three_prime[bps[r2]]] == hmap[five_prime[r2]]\n",
-    "                \n",
-    "            \"\"\" Place connection \"\"\"\n",
-    "            if is_terminal1 and is_terminal2:\n",
-    "                end1 = seg1.end3 if f1 else seg1.start3\n",
-    "                end2 = seg2.start5 if f2 else seg2.end5\n",
-    "                seg1._connect_ends( end1, end2, type_='intrahelical')\n",
-    "            else:\n",
-    "                seg1.add_crossover(nt1,seg2,nt2,[f1,f2],type_=\"terminal_crossover\")\n",
-    "        else:\n",
-    "            seg1.add_crossover(nt1,seg2,nt2,[f1,f2])\n",
-    "\n",
-    "    ## Add 5prime/3prime ends\n",
-    "    for r in prime5:\n",
-    "        seg = allSegments[hmap[r]]\n",
-    "        seg.add_5prime(hrank[r],fwd[r])\n",
-    "    for r in prime3:\n",
-    "        seg = allSegments[hmap[r]]\n",
-    "        seg.add_3prime(hrank[r],fwd[r])\n",
-    "\n",
-    "    ## Add intrahelical connections to circular helical sections\n",
-    "    for nt0,nt1 in intrahelical:\n",
-    "        seg = allSegments[hmap[nt0]]\n",
-    "        assert( seg is allSegments[hmap[nt1]] )\n",
-    "        if three_prime[nt0] >= 0:\n",
-    "            if hmap[nt0] == hmap[three_prime[nt0]]:\n",
-    "                seg.connect_end3(seg.start5)\n",
-    "\n",
-    "        bp0,bp1 = [bps[nt] for nt in (nt0,nt1)]\n",
-    "        if three_prime[bp1] >= 0:\n",
-    "            if hmap[bp1] == hmap[three_prime[bp1]]:\n",
-    "                seg.connect_start3(seg.end5)\n",
-    "\n",
-    "    ## Assign sequence\n",
-    "    if sequence is not None:\n",
-    "        for hid in range(len(allSegments)):\n",
-    "            resids = np.where( (hmap==hid)*(fwd==1) )[0]\n",
-    "            s = allSegments[hid]\n",
-    "            s.sequence = [sequence[r] for r in sorted(resids,key=lambda x: hrank[x])]\n",
-    "\n",
-    "\n",
-    "    ## Build model\n",
-    "    model = SegmentModel( allSegments,\n",
-    "                          max_basepairs_per_bead = max_basepairs_per_bead,\n",
-    "                          max_nucleotides_per_bead = max_nucleotides_per_bead,\n",
-    "                          local_twist = local_twist,\n",
-    "                          dimensions = dimensions,\n",
-    "                          **model_parameters )\n",
-    "\n",
-    "\n",
-    "    model._reader_list_coordinates = coordinate\n",
-    "    model._reader_list_basepair = basepair\n",
-    "    model._reader_list_stack = stack\n",
-    "    model._reader_list_three_prime = three_prime\n",
-    "    model._reader_list_five_prime = five_prime\n",
-    "    model._reader_list_sequence = sequence\n",
-    "    model._reader_list_orientation = orientation\n",
-    "    model._reader_list_hmap = hmap\n",
-    "    model._reader_list_fwd = fwd\n",
-    "    model._reader_list_hrank = hrank\n",
-    "\n",
-    "    if sequence is None:\n",
-    "        for s in model.segments:\n",
-    "            s.randomize_unset_sequence()\n",
-    "\n",
-    "    return model\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 3,
-   "id": "61be89c1",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "<DoubleStrandedSegment'> 1[1]> <DoubleStrandedSegment'> 0[1]> 5 3 True True\n",
-      "<SingleStrandedSegment'> 2[2]> <DoubleStrandedSegment'> 0[1]> 1 2 True True\n",
-      "<DoubleStrandedSegment'> 0[1]> <DoubleStrandedSegment'> 1[1]> 2 4 True True\n",
-      "<DoubleStrandedSegment'> 1[1]> <SingleStrandedSegment'> 3[1]> 4 6 True True\n",
-      "<SingleStrandedSegment'> 3[1]> <SingleStrandedSegment'> 2[2]> 6 0 True True\n"
-     ]
-    }
-   ],
-   "source": [
-    "coordinate = [(0,0,3.4*i) for i in range(7)]\n",
-    "three_prime = [ 1, 2, 4,-1, 6, 3, 0]\n",
-    "basepair    = [-1,-1, 3, 2, 5, 4,-1]\n",
-    "stack       = [-1,-1, -1,-1,-1, -1,-1]\n",
-    "for i in [3,5]:\n",
-    "    coordinate[i] = (1,0,3.4*i)\n",
-    "\n",
-    "model = model_from_basepair_stack_3prime(coordinate, basepair, stack, three_prime,\n",
-    "                                             max_basepairs_per_bead=1,\n",
-    "                                             max_nucleotides_per_bead=1,\n",
-    "                                             local_twist=False)\n",
-    "model.writePsf(\"list.psf\")\n",
-    "model.writePdb(\"list.pdb\")"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "id": "a00c445c",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "[[<SegmentParticle DNA on <DoubleStrandedSegment'> 0[1]>[1.00]>], [<SegmentParticle DNA on <DoubleStrandedSegment'> 1[1]>[0.00]>, <SegmentParticle DNA on <DoubleStrandedSegment'> 1[1]>[1.00]>], [<SegmentParticle NAS on <SingleStrandedSegment'> 2[2]>[0.00]>, <SegmentParticle NAS on <SingleStrandedSegment'> 2[2]>[0.50]>, <SegmentParticle NAS on <SingleStrandedSegment'> 2[2]>[1.00]>], [<SegmentParticle NAS on <SingleStrandedSegment'> 3[1]>[0.50]>]]\n",
-      "[[<Connection <Location 1.end3[0,on_fwd_strand]>--intrahelical--<Location 0.end5[0,on_fwd_strand]>]>, <Connection <Location 2.end3[1,on_fwd_strand]>--sscrossover--<Location 0.end5[0,on_rev_strand]>]>, <Connection <Location 0.end3[0,on_rev_strand]>--intrahelical--<Location 1.end5[0,on_rev_strand]>]>], [<Connection <Location 1.end3[0,on_fwd_strand]>--intrahelical--<Location 0.end5[0,on_fwd_strand]>]>, <Connection <Location 0.end3[0,on_rev_strand]>--intrahelical--<Location 1.end5[0,on_rev_strand]>]>, <Connection <Location 1.end3[0,on_rev_strand]>--intrahelical--<Location 3.end5[0,on_fwd_strand]>]>], [<Connection <Location 2.end3[1,on_fwd_strand]>--sscrossover--<Location 0.end5[0,on_rev_strand]>]>, <Connection <Location 3.end3[0,on_fwd_strand]>--intrahelical--<Location 2.end5[0,on_fwd_strand]>]>], [<Connection <Location 1.end3[0,on_rev_strand]>--intrahelical--<Location 3.end5[0,on_fwd_strand]>]>, <Connection <Location 3.end3[0,on_fwd_strand]>--intrahelical--<Location 2.end5[0,on_fwd_strand]>]>]]\n"
-     ]
-    }
-   ],
-   "source": [
-    "print([i.children for i in model.children])\n",
-    "print([i.connections for i in model.children])"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 5,
-   "id": "a648fae4",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "s=model.children[0]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 6,
-   "id": "9d100033",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "'0'"
-      ]
-     },
-     "execution_count": 6,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "s.segname"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 7,
-   "id": "66d3eaf4",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "[(0, 0, 0.0),\n",
-       " (0, 0, 3.4),\n",
-       " (0, 0, 6.8),\n",
-       " (1, 0, 10.2),\n",
-       " (0, 0, 13.6),\n",
-       " (1, 0, 17.0),\n",
-       " (0, 0, 20.4)]"
-      ]
-     },
-     "execution_count": 7,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "coordinate"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "f60b0cdc",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 3 (ipykernel)",
-   "language": "python",
-   "name": "python3"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.8.19"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/mrdna/readers/test/libs b/mrdna/readers/test/libs
deleted file mode 120000
index d4bda9b46951e0c8c2007f84bbc447f93995502d..0000000000000000000000000000000000000000
--- a/mrdna/readers/test/libs
+++ /dev/null
@@ -1 +0,0 @@
-../libs
\ No newline at end of file
diff --git a/mrdna/readers/test/test.json b/mrdna/readers/test/test.json
deleted file mode 100644
index 5332be92ca7e69748471d79a41ad39cf8bc1aa26..0000000000000000000000000000000000000000
--- a/mrdna/readers/test/test.json
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"test.json","vstrands":[{"row":12,"col":16,"num":0,"scaf":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[1,5,0,6],[0,5,0,7],[0,6,0,8],[0,7,0,9],[0,8,0,10],[0,9,0,11],[0,10,0,12],[0,11,0,13],[0,12,0,14],[0,13,0,15],[0,14,0,16],[0,15,0,17],[0,16,0,18],[0,17,0,19],[0,18,0,20],[0,19,0,21],[0,20,0,22],[0,21,0,23],[0,22,0,24],[0,23,0,25],[0,24,0,26],[0,25,0,27],[0,26,0,28],[0,27,0,29],[0,28,0,30],[0,29,0,31],[0,30,0,32],[0,31,0,33],[0,32,0,34],[0,33,0,35],[0,34,0,36],[0,35,1,36],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,0,40],[0,39,0,41],[0,40,-1,-1]],"stap":[[-1,-1,-1,-1],[-1,-1,-1,-1],[0,3,-1,-1],[0,4,0,2],[0,5,0,3],[0,6,0,4],[0,7,0,5],[0,8,0,6],[0,9,0,7],[0,10,0,8],[0,11,0,9],[0,12,0,10],[0,13,0,11],[0,14,0,12],[0,15,0,13],[0,16,0,14],[0,17,0,15],[0,18,0,16],[0,19,0,17],[0,20,0,18],[1,20,0,19],[0,22,1,21],[0,23,0,21],[-1,-1,0,22],[0,25,-1,-1],[0,26,0,24],[0,27,0,25],[5,27,0,26],[0,29,5,28],[0,30,0,28],[0,31,0,29],[0,32,0,30],[0,33,0,31],[0,34,0,32],[0,35,0,33],[0,36,0,34],[0,37,0,35],[0,38,0,36],[-1,-1,0,37],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scafLoop":[],"stapLoop":[],"stap_colors":[[23,13369809],[38,12060012]]},{"row":12,"col":15,"num":1,"scaf":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[1,6,0,5],[1,7,1,5],[1,8,1,6],[1,9,1,7],[1,10,1,8],[1,11,1,9],[1,12,1,10],[1,13,1,11],[1,14,1,12],[1,15,1,13],[1,16,1,14],[1,17,1,15],[1,18,1,16],[2,18,1,17],[1,20,2,19],[1,21,1,19],[1,22,1,20],[1,23,1,21],[1,24,1,22],[1,25,1,23],[1,26,1,24],[1,27,1,25],[1,28,1,26],[1,29,1,27],[1,30,1,28],[1,31,1,29],[1,32,1,30],[1,33,1,31],[1,34,1,32],[1,35,1,33],[1,36,1,34],[0,36,1,35],[-1,-1,-1,-1],[-1,-1,-1,-1],[1,40,-1,-1],[1,41,1,39],[-1,-1,1,40]],"stap":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,1,4],[1,3,1,5],[1,4,1,6],[1,5,1,7],[1,6,1,8],[1,7,1,9],[1,8,1,10],[1,9,1,11],[1,10,1,12],[1,11,1,13],[1,12,1,14],[1,13,1,15],[1,14,1,16],[1,15,1,17],[1,16,1,18],[1,17,1,19],[1,18,1,20],[1,19,0,20],[0,21,1,22],[1,21,1,23],[1,22,1,24],[1,23,1,25],[1,24,1,26],[1,25,1,27],[1,26,1,28],[1,27,1,29],[1,28,1,30],[1,29,1,31],[1,30,1,32],[1,31,1,33],[1,32,1,34],[1,33,1,35],[1,34,1,36],[1,35,1,37],[1,36,1,38],[1,37,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scafLoop":[],"stapLoop":[],"stap_colors":[[3,1501302]]},{"row":13,"col":15,"num":2,"scaf":[[-1,-1,-1,-1],[-1,-1,-1,-1],[3,2,2,3],[2,2,2,4],[2,3,2,5],[2,4,2,6],[2,5,2,7],[2,6,2,8],[2,7,2,9],[2,8,2,10],[2,9,2,11],[2,10,2,12],[2,11,2,13],[2,12,2,14],[2,13,2,15],[2,14,2,16],[2,15,2,17],[2,16,2,18],[2,17,1,18],[1,19,2,20],[2,19,2,21],[2,20,2,22],[2,21,2,23],[2,22,2,24],[2,23,2,25],[2,24,2,26],[2,25,2,27],[2,26,2,28],[2,27,2,29],[2,28,2,30],[2,29,2,31],[2,30,2,32],[2,31,3,32],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,2,40],[2,39,2,41],[2,40,-1,-1]],"stap":[[2,1,-1,-1],[2,2,2,0],[2,3,2,1],[2,4,2,2],[2,5,2,3],[2,6,2,4],[2,7,2,5],[2,8,2,6],[2,9,2,7],[2,10,2,8],[2,11,2,9],[2,12,2,10],[2,13,2,11],[2,14,2,12],[2,15,2,13],[2,16,2,14],[2,17,2,15],[2,18,2,16],[2,19,2,17],[2,20,2,18],[2,21,2,19],[2,22,2,20],[2,23,2,21],[2,24,2,22],[2,25,2,23],[2,26,2,24],[2,27,2,25],[2,28,2,26],[2,29,2,27],[2,30,2,28],[2,31,2,29],[2,32,2,30],[2,33,2,31],[2,34,2,32],[-1,-1,2,33],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scafLoop":[],"stapLoop":[],"stap_colors":[[34,8947848]]},{"row":13,"col":16,"num":3,"scaf":[[-1,-1,-1,-1],[-1,-1,-1,-1],[3,3,2,2],[3,4,3,2],[3,5,3,3],[3,6,3,4],[3,7,3,5],[3,8,3,6],[3,9,3,7],[3,10,3,8],[3,11,3,9],[3,12,3,10],[3,13,3,11],[3,14,3,12],[3,15,3,13],[4,15,3,14],[3,17,4,16],[3,18,3,16],[3,19,3,17],[3,20,3,18],[3,21,3,19],[3,22,3,20],[3,23,3,21],[3,24,3,22],[3,25,3,23],[3,26,3,24],[3,27,3,25],[3,28,3,26],[3,29,3,27],[3,30,3,28],[3,31,3,29],[3,32,3,30],[2,32,3,31],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[3,38,-1,-1],[3,39,3,37],[3,40,3,38],[3,41,3,39],[-1,-1,3,40]],"stap":[[-1,-1,3,1],[3,0,3,2],[3,1,3,3],[3,2,3,4],[3,3,3,5],[3,4,3,6],[3,5,3,7],[3,6,3,8],[3,7,3,9],[3,8,3,10],[3,9,3,11],[3,10,3,12],[3,11,3,13],[3,12,3,14],[3,13,3,15],[3,14,3,16],[3,15,3,17],[3,16,3,18],[3,17,3,19],[3,18,3,20],[3,19,4,20],[4,21,3,22],[3,21,3,23],[3,22,3,24],[3,23,3,25],[3,24,3,26],[3,25,3,27],[3,26,3,28],[3,27,3,29],[3,28,3,30],[3,29,3,31],[3,30,3,32],[3,31,3,33],[3,32,3,34],[3,33,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scafLoop":[],"stapLoop":[],"stap_colors":[[0,13369344]]},{"row":13,"col":17,"num":4,"scaf":[[-1,-1,4,1],[4,0,4,2],[4,1,4,3],[4,2,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[5,9,4,10],[4,9,4,11],[4,10,4,12],[4,11,4,13],[4,12,4,14],[4,13,4,15],[4,14,3,15],[3,16,4,17],[4,16,4,18],[4,17,4,19],[4,18,4,20],[4,19,4,21],[4,20,4,22],[4,21,4,23],[4,22,4,24],[4,23,4,25],[4,24,4,26],[4,25,4,27],[4,26,4,28],[4,27,4,29],[4,28,4,30],[4,29,4,31],[4,30,4,32],[4,31,4,33],[4,32,4,34],[4,33,4,35],[4,34,4,36],[4,35,4,37],[4,36,4,38],[4,37,4,39],[4,38,5,39],[-1,-1,-1,-1],[-1,-1,-1,-1]],"stap":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[4,10,-1,-1],[4,11,4,9],[4,12,4,10],[4,13,4,11],[4,14,4,12],[4,15,4,13],[4,16,4,14],[4,17,4,15],[4,18,4,16],[4,19,4,17],[4,20,4,18],[3,20,4,19],[4,22,3,21],[4,23,4,21],[4,24,4,22],[4,25,4,23],[4,26,4,24],[4,27,4,25],[4,28,4,26],[4,29,4,27],[4,30,4,28],[4,31,4,29],[4,32,4,30],[4,33,4,31],[4,34,4,32],[4,35,4,33],[4,36,4,34],[4,37,4,35],[4,38,4,36],[4,39,4,37],[-1,-1,4,38],[-1,-1,-1,-1],[-1,-1,-1,-1]],"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scafLoop":[],"stapLoop":[],"stap_colors":[[39,8947848]]},{"row":12,"col":17,"num":5,"scaf":[[5,1,-1,-1],[5,2,5,0],[5,3,5,1],[-1,-1,5,2],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[5,10,4,9],[5,11,5,9],[5,12,5,10],[5,13,5,11],[5,14,5,12],[5,15,5,13],[5,16,5,14],[5,17,5,15],[5,18,5,16],[5,19,5,17],[5,20,5,18],[5,21,5,19],[5,22,5,20],[-1,-1,5,21],[5,24,-1,-1],[5,25,5,23],[5,26,5,24],[5,27,5,25],[5,28,5,26],[5,29,5,27],[5,30,5,28],[5,31,5,29],[5,32,5,30],[5,33,5,31],[5,34,5,32],[5,35,5,33],[5,36,5,34],[5,37,5,35],[5,38,5,36],[5,39,5,37],[4,39,5,38],[-1,-1,-1,-1],[-1,-1,-1,-1]],"stap":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,5,10],[5,9,5,11],[5,10,5,12],[5,11,5,13],[5,12,5,14],[5,13,5,15],[5,14,5,16],[5,15,5,17],[5,16,5,18],[5,17,5,19],[5,18,5,20],[5,19,5,21],[5,20,5,22],[5,21,5,23],[5,22,5,24],[5,23,5,25],[5,24,5,26],[5,25,5,27],[5,26,0,27],[0,28,5,29],[5,28,5,30],[5,29,5,31],[5,30,5,32],[5,31,5,33],[5,32,5,34],[5,33,5,35],[5,34,5,36],[5,35,5,37],[5,36,5,38],[5,37,5,39],[5,38,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scafLoop":[],"stapLoop":[],"stap_colors":[[9,0]]}]}
\ No newline at end of file
diff --git a/mrdna/readers/test/test.json.oxdna b/mrdna/readers/test/test.json.oxdna
deleted file mode 100644
index 22b3082f579505ad14e9e718bb2433c980c3bdfd..0000000000000000000000000000000000000000
--- a/mrdna/readers/test/test.json.oxdna
+++ /dev/null
@@ -1,418 +0,0 @@
-t = 0
-b = 59.840000 59.840000 59.840000
-E = 0.000000 0.000000 0.000000
-35.75312434114018 45.470817422524235 15.980277060342809 -0.698813111225147 0.7153042957929386 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.46830708232107 45.31526274652053 15.590514205212497 -0.22411767985996922 0.97456208913244 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.144150399289146 45.330773162168974 15.200751350082184 0.31614345852657033 0.9487113963850442 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.37179933844421 47.722103913305695 15.200751350082177 -0.41054607281573 -0.9118398555094973 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.02080474653338 47.76580016075659 15.59051420521249 0.17444491370231707 -0.9846669345943282 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.70618382801968 47.60418257747576 15.980277060342802 0.6988131112251446 -0.7153042957929399 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.54475956148986 49.29581742252423 15.980277060342809 -0.6988131112251457 0.7153042957929381 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.25994230267075 49.140262746520534 15.590514205212497 -0.22411767985996822 0.9745620891324388 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.93578561963883 49.15577316216897 15.200751350082184 0.3161434585265706 0.9487113963850426 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.561656122283225 49.93021208599539 1.1102230246251565e-16 0.9396926207859077 -0.34202014332566855 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.53985546526863 49.59441044543136 0.38976285513031234 0.9760270491435681 0.21764925761439552 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.72845682719759 49.27513424787104 0.7795257102606246 0.6616914459286316 0.7497762535482672 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.06023949562461 49.12855657418608 1.1692885653909368 0.1087203318836026 0.9940723763565297 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.41586177015792 49.199953712414455 1.5590514205212491 -0.4839834590052442 0.875077145975895 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.66535877056129 49.463233032303364 1.9488142756515614 -0.8998117930108621 0.43627827949438 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.71754990973771 49.82217709268453 2.3385771307818737 -0.9867970249715624 -0.1619618211408862 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.55336153668667 50.14560704127664 2.7283399859121857 -0.7131497365531624 -0.701011735461079 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.23279754814879 50.31532292958451 3.118102841042498 -0.1788764223233551 -0.983871549307528 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.873010505596895 50.269300788139226 3.50786569617281 0.42076864859646335 -0.9071679802320541 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.605487335594205 50.024359760536335 3.897628551303122 0.8666405986009411 -0.4989329342272377 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.52799642679254 49.67001541876616 4.287391406433434 0.995792113270385 0.09164096872305229 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.66885742450945 49.335765612762266 4.6771542615637465 0.7610237837422053 0.6487239787295487 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.97659159974164 49.14376449066761 5.066917116694059 0.24813349168855076 0.9687258488873137 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.33873514441879 49.164180331089035 5.4566799718243715 -0.3554390827733704 0.934699448184936 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.62293993025211 49.3895520089922 5.846442826954684 -0.829113725828891 0.5590799850129974 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.72534114449366 49.73751572091242 6.2362056820849965 -0.9997824162314877 -0.0208595348540425 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.60851548017426 50.08090546689761 6.625968537215309 -0.8050729756991452 -0.5931757781626982 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.315157769870716 50.29422683783102 7.0157313923456215 -0.31614345852657166 -0.9487113963850422 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.96154078962503 50.30217125564545 7.405494247475934 0.27321817521622777 -0.9619520927424158 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.663494595457585 50.10785396657858 7.7952571026062465 0.7699618321619808 -0.6380899442976392 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.527898468248125 49.778909544261076 8.185019957736559 0.9959553775110749 -0.08984924043513565 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.60243355924406 49.43100831848251 8.574782812866871 0.8717302258511888 0.4899861358624689 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.86089027809679 49.1864866074467 8.964545667997184 0.44096902776330643 0.89752232092215 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.21238465816112 49.13132825838522 9.354308523127496 -0.14485493901058039 0.9894529026913003 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.53331688103983 49.28492920566787 9.744071378257809 -0.6797419771417614 0.7334513238868737 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.710834034380895 49.59327706597775 10.133834233388122 -0.9756038993768755 0.21953822337040532 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.68251381740292 49.947944104195734 10.523597088518434 -0.9284035377469173 -0.37157350699290564 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.45831477816237 50.22421486539137 10.913359943648747 -0.5547384723459938 -0.8320247756522829 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.11707448023534 50.32494123611259 11.303122798779059 0.013995357532388293 -0.9999020601876663 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.77878698681533 50.214703699476466 11.692885653909372 0.5778078465657451 -0.8161728324607816 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.56240803410816 49.93226628780204 12.082648509039684 0.9384394344110165 -0.3454438130034033 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.54402532301732 49.57694556138582 12.472411364169997 0.9690772862290773 0.24675739769029417 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.72846019219666 49.275131278219355 12.862174219300309 0.6616858375968585 0.7497812029677342 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.99195475891848 49.14004425137888 13.251937074430622 0.22252822639381867 0.9749262477018558 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.903691545284474 50.812209696221935 14.421225639821552 -0.949758451465636 0.3129838396300944 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.89799649202623 51.20426324808372 14.810988494951864 -0.940266696035234 -0.34043874680621233 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.651376243239824 51.50908594088658 15.200751350082177 -0.5292329480578937 -0.8484765681443127 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.269150264687134 51.59650288706118 15.59051420521249 0.10781034952992652 -0.9941714784353024 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.91454860767 51.42918257747576 15.980277060342802 0.6988131112251446 -0.7153042957929399 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.53622185501599 50.32497020491614 1.1692885653909366 0.009965665065707063 -0.999950341526917 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.89729099547497 50.208643748578005 0.7795257102606244 -0.5918162356992592 -0.8060729142966898 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.11642014453254 49.89899041875694 0.3897628551303122 -0.9570314841285477 -0.2899840312615668 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.10601682652696 49.519787914004596 0.0 -0.9396926207859083 0.3420201433256689 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.978385681583866 47.3802120859954 -6.994405055138486e-15 0.9396926207859071 -0.34202014332567066 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.96198410287354 47.02219928837079 0.38976285513030523 0.9670285853031227 0.25466785271533593 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.152594615545105 46.71870331227512 0.7795257102606175 0.6493443975171795 0.7604944795414692 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.48221047283636 46.57800661128557 1.1692885653909297 0.09998463536509283 0.9949889811907007 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.10169102725237 46.76762948059299 8.964545667997177 0.7341837113383977 0.6789508656783465 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.43003882334065 46.58557690142296 9.35430852312749 0.18693738452460512 0.982371830961729 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.802303014340836 46.63430870702736 9.744071378257802 -0.43350293380903776 0.9011521549543988 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.07272622749144 46.89474430860247 10.133834233388114 -0.8842082890600417 0.46709281899587546 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.135426194136286 47.264912015137256 10.523597088518427 -0.9887082334681243 -0.1498533585620988 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.020186128118674 47.537671283901446 10.91335994364874 -0.7966414567721041 -0.6044521398357525 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.7224838684437 47.7472745660514 11.303122798779052 -0.30047102398048187 -0.9537909434190078 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.358397458084355 47.74615336345558 11.692885653909364 0.30633965995176865 -0.9519222724259765 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.061991777392166 47.5347205283589 12.082648509039677 0.8003491277720788 -0.5995342139315094 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.9424101258336 47.19083042976032 12.47241136416999 0.9996518803696997 -0.026384049600539805 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.043685181784674 46.84111120760385 12.862174219300302 0.8308601204512335 0.5564813206602373 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.328525170896356 46.61433741743736 13.251937074430614 0.3561268052650998 0.9344376376043901 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.69204554386096 46.594012316126516 13.641699929560927 -0.24974048300923346 0.9683128064558036 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.000389848143634 46.78762006731445 14.03146278469124 -0.7636476568136992 0.6456332211425824 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.14001871208826 47.12386990249232 14.421225639821552 -0.9963624300547468 0.08521682917945145 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.05951761868531 47.47894700012684 14.810988494951864 -0.862193941049832 -0.5065783335447329 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.788528897744854 47.722103913305695 15.200751350082177 -0.4105460728157302 -0.9118398555094974 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.35251517893947 49.15577316216897 15.200751350082184 0.3161434585265723 0.9487113963850428 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.05978072285229 49.36825018419948 14.810988494951872 0.8040342186718706 0.5945830263341821 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.94237925725375 49.71038589199235 14.421225639821559 0.9997033280027812 0.024356846679402966 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.04297967519406 50.057833013986254 14.031462784691247 0.8320359647689195 -0.5547216899771032 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.32501932856643 50.28431387542317 13.641699929560934 0.36196987581497586 -0.932189792371967 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.6859925140194 50.307515298990474 13.251937074430622 -0.23965209993997283 -0.9708588316508024 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.99470558617922 50.11900485962635 12.862174219300309 -0.7541738868730156 -0.656674766043928 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.13895853977307 49.78729560131259 12.472411364169997 -0.9945954761960902 -0.1038260021876607 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.066323461591374 49.43294536201656 12.082648509039684 -0.8735370125599315 0.48675772997238537 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.803199156511305 49.18474071510651 11.692885653909372 -0.43499650409315727 0.9004321414891471 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.445216652434766 49.13289022381953 11.303122798779059 0.16164100270108034 0.9868496269674467 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.12248264864715 49.29623865347475 10.913359943648747 0.6995310090137751 0.714602244208741 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.952292978050366 49.61541794900278 10.523597088518434 0.9831804600084086 0.1826367516620167 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.99650210571371 49.97442421594371 10.133834233388122 0.9094985805695084 -0.4157070265728599 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.23904247634309 50.24277867423829 9.744071378257809 0.5052646295205465 -0.862964457063826 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.59176417560833 50.32294942662999 9.354308523127496 -0.0826048692548616 -0.9965823777166574 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.92647251372671 50.18579887043116 8.964545667997184 -0.6404520994521539 -0.7679981173852753 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.12151965428168 49.88117359302802 8.574782812866871 -0.9655306670437727 -0.2602893217133695 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.10601682652696 49.519787914004596 8.185019957736559 -0.9396926207859078 0.34202014332566855 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.9614891207905 49.29581742252423 7.7952571026062465 -0.6988131112251442 0.7153042957929394 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.62457907283371 49.13068199171375 7.405494247475934 -0.13729636463049855 0.9905300138104085 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.25545515803796 49.19795476814721 7.0157313923456215 0.4779101600290868 0.878408719754632 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.99846337651171 49.47132871560961 6.625968537215309 0.9062297959061728 0.42278547398397615 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.95410042932779 49.84390088290122 6.2362056820849965 0.9801680412127042 -0.1981681381687017 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.903691545284474 50.812209696221935 6.236205682084989 -0.9497584514656364 0.31298383963009474 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.89799649202623 51.20426324808372 6.625968537215302 -0.9402666960352346 -0.34043874680621233 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.651376243239824 51.50908594088658 7.015731392345614 -0.529232948057894 -0.848476568144313 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.269150264687134 51.59650288706118 7.405494247475927 0.10781034952992641 -0.9941714784353027 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.91454860767 51.42918257747576 7.795257102606239 0.6988131112251448 -0.7153042957929402 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.77002090193354 51.20521208599539 8.185019957736552 0.9396926207859086 -0.34202014332566905 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.75503829969941 50.84190928883274 8.574782812866864 0.9646636245094727 0.26348451861209515 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.95262479483279 50.53666679877471 8.964545667997177 0.6353527992871647 0.7722220020421358 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.29021488046445 50.40158780381572 9.35430852312749 0.07270265656773878 0.9973536603071118 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.64382540854896 50.486281340899176 9.744071378257802 -0.5166482235731272 0.8561977651680319 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.88358957221053 50.759642908460506 10.133834233388114 -0.9162551630090682 0.4005951525658119 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.921451717375014 51.12127788846031 10.523597088518427 -0.9793587382832112 -0.20212981410053477 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.74350661356013 51.438372418252655 10.91335994364874 -0.6827835652584018 -0.7306206970877747 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.415106281127954 51.59447053628857 11.303122798779052 -0.13544967787143963 -0.9907842271476283 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.05685884444895 51.532243734114246 11.692885653909364 0.4616293832602298 -0.887072890190417 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.80033405888354 51.27454539266335 12.082648509039677 0.8891706925359069 -0.45757565443893056 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.739743075231864 50.916017662221144 12.47241136416999 0.9901556652887118 0.1399705629647472 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.70691806649222 49.87305443861417 12.472411364169997 -0.9690772862290773 -0.24675739769029442 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.688535355401385 49.51773371219795 12.082648509039684 -0.9384394344110167 0.3454438130034032 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.47215640269422 49.23529630052352 11.692885653909372 -0.5778078465657454 0.8161728324607816 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.133868909274206 49.125058763887395 11.303122798779059 -0.013995357532388508 0.9999020601876665 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.792628611347176 49.22578513460862 10.913359943648747 0.5547384723459938 0.8320247756522834 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.56842957210662 49.50205589580425 10.523597088518434 0.9284035377469175 0.37157350699290603 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.54010935512865 49.85672293402224 10.133834233388122 0.975603899376876 -0.21953822337040513 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.71762650846971 50.16507079433212 9.744071378257809 0.6797419771417619 -0.7334513238868738 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.038558731348424 50.31867174161477 9.354308523127496 0.14485493901058083 -0.9894529026913006 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.390053111412755 50.263513392553286 8.964545667997184 -0.4409690277633063 -0.8975223209221506 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.64850983026549 50.01899168151748 8.574782812866871 -0.8717302258511891 -0.48998613586246953 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.72304492126142 49.67109045573891 8.185019957736559 -0.9959553775110754 0.08984924043513537 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.58744879405196 49.34214603342141 7.7952571026062465 -0.7699618321619813 0.6380899442976393 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.28940259988451 49.14782874435454 7.405494247475934 -0.2732181752162281 0.9619520927424162 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.003175332971274 47.76240411974595 7.405494247475927 0.20382726963916054 -0.979006866243259 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.70618382801968 47.60418257747576 7.795257102606239 0.6988131112251441 -0.7153042957929415 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.561656122283225 47.3802120859954 8.185019957736552 0.9396926207859086 -0.34202014332567054 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.54287034033203 47.03155781016456 8.574782812866864 0.9710022573712378 0.23907031639239995 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.72138041884882 46.731479717784296 8.964545667997177 0.6734854598432604 0.7392004703595051 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.036734559574256 46.58159817927482 9.35430852312749 0.1478952253008619 0.9890030345419617 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.3821392130697 46.63267004043474 9.744071378257802 -0.42777919719154794 0.9038832659420994 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.64062433145644 46.86739999853817 10.133834233388114 -0.8585877278361184 0.5126666691030467 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.724654855876246 47.20629759461164 10.523597088518427 -0.9986386018691278 -0.05216265768607625 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.60577415042341 47.53459637244927 10.91335994364874 -0.8005040927810596 -0.5993272874154603 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.324240739897604 47.741119127651594 11.303122798779052 -0.3312817419047254 -0.9435318794193293 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.9753949046784 47.75592766940504 11.692885653909364 0.250127983460613 -0.9682127823417371 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.6773720365011 47.57400713812279 12.082648509039677 0.7468327637561277 -0.665011896871315 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.531096511476065 47.25696426966917 12.47241136416999 0.9906253054645159 -0.1366071161152857 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.58610401186037 46.9121644950751 12.862174219300302 0.8989461381573378 0.4380591748748209 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.82376644481124 46.656373022147406 13.251937074430614 0.5028420832392227 0.8643782964209819 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.16360027925893 46.57621271636439 13.641699929560927 -0.0635476408402601 0.9979788060593457 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.49052200522787 46.698829577962364 14.03146278469124 -0.6084171841218246 0.7936173700627209 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.914904022067645 46.32952951048622 14.031462784691247 0.698220753895744 -0.7158825174770369 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.223036316716545 46.48968069754418 13.641699929560934 0.18466692948090307 -0.982801162573639 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.568284790967226 46.45229882026053 13.251937074430622 -0.3907471942702333 -0.9204980337675588 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.83499704282989 46.22990617553499 12.862174219300309 -0.8352676140413408 -0.5498436258916594 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.93382897705554 45.89700053950747 12.472411364169997 -0.9999875044174222 0.004999100820881119 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.83167356656375 45.565099672035075 12.082648509039684 -0.8297284869310981 0.5581672132748681 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.562751146796316 45.34538475249591 11.692885653909372 -0.3815244539853757 0.9243587458401432 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.217146181884516 45.31145656436295 11.303122798779059 0.194483820867627 0.9809057260617507 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.91063049216267 45.47468047705963 10.913359943648747 0.7053433037373743 0.7088658715672859 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.75707863214423 45.73462046260012 10.523597088518434 0.9612630704347677 0.27563256233312594 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.767015285439065 46.09675807413966 10.133834233388122 0.9447019816100349 -0.3279301235660959 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.983593510155735 46.387165132161385 9.744071378257809 0.5837382737489281 -0.8119418869356497 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.327857075365664 46.49997020491615 9.354308523127496 0.009965665065708895 -0.9999503415269181 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.73085134196227 46.34986575212896 8.964545667997184 -0.6616914459286316 -0.7497762535482694 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.915283399860776 46.048052264008795 8.574782812866871 -0.9690782090928103 -0.24675377334799437 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.89765204687664 45.6947879140046 8.185019957736559 -0.9396926207859098 0.3420201433256676 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.75312434114018 45.470817422524235 7.7952571026062465 -0.6988131112251464 0.7153042957929394 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.443179652897975 45.31004740078793 7.405494247475934 -0.1822386308214769 0.9832543320201113 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.096206289175896 45.34906271221858 7.0157313923456215 0.39605030871532604 0.9182288129690206 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.82970553594819 45.57465096144207 6.625968537215309 0.8402182307614929 0.542248397596552 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.73392691808171 45.91041749643064 6.2362056820849965 0.9998492605389716 -0.017362494051069266 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.84130552121939 46.24265618359222 5.846442826954684 0.8208849219761715 -0.5710936393203626 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.115477966283805 46.45885558235652 5.4566799718243715 0.3639308468688105 -0.9314259705942023 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.463596737465124 46.485800541251535 5.066917116694059 -0.21626710510005798 -0.9763342354192246 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.76777266065848 46.31436624652578 4.6771542615637465 -0.7232269770889836 -0.6906104108763002 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.924997649726585 46.002608307619354 4.287391406433434 -0.9852686255358258 -0.17101384603226139 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.882028025660155 45.6561024331147 3.8976285513031215 -0.9136525854251036 0.4064959448088318 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.65341529763405 45.392191595438206 3.5078656961728094 -0.532631372048263 0.8463473409363237 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.316578346581935 45.30024825383827 3.1181028410424974 0.028763546371929072 0.9995862436028773 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.98558579865914 45.4114086913969 2.7283399859121853 0.5804177929099155 0.8143188476718337 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.77252709384925 45.688028824365155 2.3385771307818732 0.9355156342597376 0.3532852927247344 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.74955379887374 46.03643223619778 1.9488142756515612 0.9738044592189148 -0.22738706032964418 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.689456945467334 46.97025470218174 1.9488142756515543 -0.9399754178542725 0.34124216303042976 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.706795481020585 47.32353503129424 2.3385771307818666 -0.9688729771096851 -0.24755838549040554 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.52211170301771 47.62519629479281 2.7283399859121786 -0.6610666804382285 -0.7503271579880219 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.199587131275905 47.77040482200707 3.1181028410424907 -0.12352572753522689 -0.9923413700117988 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.85130587744064 47.70869757786266 3.5078656961728027 0.4569430288568943 -0.8894959631044361 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.59830304506407 47.46151913510843 3.897628551303115 0.878614416151166 -0.4775318918473894 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.52850247063894 47.114769231629154 4.287391406433427 0.9949487068597191 0.10038461395141074 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.66616133040001 46.78895079433278 4.677154261563739 0.7655172739246101 0.6434153427787022 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.9634402584251 46.597292622826274 5.066917116694052 0.270052393882779 0.9628456286228764 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.31702853832863 46.60639998621173 5.456679971824364 -0.31926140595642977 0.9476666896471171 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.60404676273024 46.813107883047614 5.846442826954677 -0.7976251132924458 0.6031535282539717 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.72475002681733 47.14558094630491 6.236205682084989 -0.9987972201042699 0.0490317561584791 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.637191392857865 47.48827775307748 6.625968537215302 -0.8528661635051552 -0.5221295884624808 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.37179933844421 47.722103913305695 7.015731392345614 -0.41054607281573186 -0.9118398555094976 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.93578561963883 49.15577316216897 7.0157313923456215 0.31614345852657155 0.9487113963850426 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.64242790933528 49.36909453310238 6.625968537215309 0.8050729756991453 0.5931757781626985 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.52560224501588 49.71248427908757 6.2362056820849965 0.9997824162314881 0.020859534854042683 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.628003459257435 50.06044799100779 5.846442826954684 0.8291137258288914 -0.5590799850129975 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.91220824509075 50.28581966891095 5.4566799718243715 0.35543908277337066 -0.9346994481849364 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.274351789767906 50.30623550933238 5.066917116694059 -0.24813349168855076 -0.9687258488873143 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.5820859650001 50.11423438723772 4.6771542615637465 -0.7610237837422056 -0.6487239787295491 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.722946962717 49.779984581233826 4.287391406433434 -0.9957921132703855 -0.09164096872305239 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.64545605391534 49.425640239463654 3.8976285513031215 -0.8666405986009417 0.498932934227238 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.37793288391265 49.18069921186076 3.5078656961728094 -0.42076864859646357 0.9071679802320547 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.018145841360756 49.13467707041548 3.1181028410424974 0.17887642232335527 0.9838715493075285 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.69758185282287 49.30439295872335 2.7283399859121853 0.7131497365531628 0.7010117354610793 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.53339347977183 49.62782290731546 2.3385771307818732 0.986797024971563 0.16196182114088625 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.58558461894825 49.986766967696624 1.9488142756515612 0.8998117930108627 -0.43627827949438025 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.83508161935163 50.25004628758553 1.559051420521249 0.4839834590052444 -0.8750771459758956 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.19070389388494 50.32144342581391 1.1692885653909366 -0.1087203318836028 -0.9940723763565303 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.522486562311954 50.17486575212895 0.7795257102606244 -0.6616914459286322 -0.7497762535482676 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.89332624760205 50.59262948059298 0.7795257102606175 0.734183711338398 0.6789508656783477 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.19856423748157 50.41544767392669 1.1692885653909297 0.2254537282058689 0.9742538767888357 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.550607782731156 50.44052685508005 1.559051420521242 -0.3612855138767731 0.9324552415332317 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.82764627368986 50.659189374974396 1.9488142756515543 -0.8230163321412801 0.5680177083759936 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.933821604340416 50.99577580108286 2.3385771307818666 -0.9999752165588751 0.007040331528562871 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.83239604171764 51.33382384252944 2.7283399859121786 -0.8309326121875789 -0.5563730708824142 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.55846385124692 51.55636547482132 3.1181028410424907 -0.3743789614030465 -0.9272757913688772 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.20680832771453 51.58639905350227 3.5078656961728027 0.2117135778175938 -0.9773317558371235 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.89910582136219 51.41353265808747 3.897628551303115 0.7245510884048345 -0.6892210968124601 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.741824496139344 51.09757980113668 4.287391406433427 0.9866866304429135 -0.16263300189448104 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.789385273469485 50.74786335093885 4.677154261563739 0.9074186682260024 0.42022774843523736 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.025331645739556 50.48538871884688 5.066917116694052 0.5141747144425598 0.8576854685885222 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.3680237935541 50.40097476913788 5.456679971824364 -0.05697886524835066 0.9983753847701831 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.698886784878184 50.52382957796236 5.846442826954677 -0.6084171841218244 0.7936173700627215 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.12326880171797 50.15452951048622 5.846442826954684 0.6982207538957413 -0.715882517477038 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.44195440092028 50.31656619953856 5.4566799718243715 0.16707808855855577 -0.9859436658976103 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.796232199713685 50.2685699390584 5.066917116694059 -0.42338490943045864 -0.9059498984306813 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.06031744046244 50.02758158797758 4.6771542615637465 -0.8635269773450485 -0.504302646629307 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.140447832343085 49.6791629891126 4.287391406433434 -0.9970776304794546 0.07639501814566135 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.00817343591179 49.34701861720978 3.8976285513031215 -0.7766203030939662 0.6299689713170291 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.710457687639014 49.14907485507426 3.5078656961728094 -0.2804273893060022 0.9598752415428892 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.43753651542219 47.76580055220593 3.5078656961728027 0.17444123105537201 -0.9846675870098931 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.1213514548646 47.60265108034594 3.897628551303115 0.7014163319846831 -0.7127518005765765 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.95315441830607 47.28912197550729 4.287391406433427 0.9817447262489032 -0.190203292512157 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.99209037179067 46.93546291056728 4.677154261563739 0.9168514704412498 0.39922848238786407 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.22446783957149 46.6660348957734 5.066917116694052 0.5295556908065372 0.84827517371099 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.568573387675414 46.5755798547193 5.456679971824364 -0.04395355603333001 0.9990335754678239 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.90340541360927 46.6959054841464 5.846442826954677 -0.6020069325897589 0.7984908597559954 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.11122326504336 46.98470036518365 6.236205682084989 -0.9483700183132395 0.3171660580272505 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.118949674875275 47.340412390956054 6.625968537215302 -0.9612473680330986 -0.27568731826009024 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.92386772099687 47.637958646114775 7.015731392345614 -0.6361107782357527 -0.7715977435246326 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.594576207370615 47.772709682258224 7.405494247475927 -0.08729158885867166 -0.996182803763711 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.24686751530431 47.697281516765905 7.795257102606239 0.4922228979185057 -0.8704691946098426 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.003010260263906 47.43819778155244 8.185019957736552 0.8986516563191761 -0.43866296925407455 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.948754639542244 47.086562927892984 8.574782812866864 0.9890776908552785 0.14739512017834894 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.93682160684791 45.450134247871034 0.7795257102606246 0.6616914459286328 0.7497762535482688 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.339815873444515 45.300029795083844 1.1692885653909368 -0.009965665065707693 0.9999503415269184 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.7397384608735 45.45813624568086 1.5590514205212491 -0.6765033107806757 0.7364395905318962 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.91811914993644 45.763567763802214 1.9488142756515614 -0.9738044592189159 0.22738706032964426 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.89514585496093 46.11197117563484 2.3385771307818737 -0.9355156342597385 -0.3532852927247349 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.68208715015104 46.3885913086031 2.7283399859121857 -0.5804177929099159 -0.8143188476718345 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.351094602228244 46.49975174616173 3.118102841042498 -0.028763546371928978 -0.9995862436028781 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.01425765117613 46.40780840456179 3.50786569617281 0.5326313720482635 -0.8463473409363242 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.78564492315002 46.1438975668853 3.897628551303122 0.9136525854251042 -0.406495944808832 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.742675299083594 45.79739169238064 4.287391406433434 0.9852686255358262 0.17101384603226139 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.8999002881517 45.48563375347422 4.6771542615637465 0.7232269770889839 0.6906104108763003 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.204076211345054 45.31419945874846 5.066917116694059 0.2162671051000581 0.9763342354192247 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.55219498252637 45.34114441764348 5.4566799718243715 -0.36393084686881044 0.9314259705942024 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.82636742759079 45.55734381640778 5.846442826954684 -0.8208849219761714 0.5710936393203627 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.93374603072847 45.88958250356936 6.2362056820849965 -0.9998492605389714 0.01736249405106932 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.837967412861985 46.22534903855793 6.625968537215309 -0.8402182307614928 -0.5422483975965517 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.57146665963428 46.450937287781414 7.0157313923456215 -0.39605030871532604 -0.9182288129690204 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.224493295912204 46.48995259921207 7.405494247475934 0.18223863082147676 -0.983254332020111 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.91454860767 46.32918257747576 7.7952571026062465 0.6988131112251461 -0.7153042957929392 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.54475956148986 46.74581742252423 7.795257102606239 -0.6988131112251437 0.715304295792941 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.24776805653827 46.58759588025404 7.405494247475927 -0.20382726963916048 0.9790068662432584 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.87914405106533 46.6278960866943 7.015731392345614 0.4105460728157315 0.911839855509497 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.61375199665168 46.86172224692251 6.625968537215302 0.8528661635051547 0.5221295884624804 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.52619336269221 47.204419053695084 6.236205682084989 0.9987972201042691 -0.04903175615847916 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.6468966267793 47.53689211695238 5.846442826954677 0.7976251132924452 -0.6031535282539714 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.933914851180916 47.74360001378827 5.456679971824364 0.3192614059564296 -0.9476666896471165 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.28750313108444 47.75270737717372 5.066917116694052 -0.2700523938827789 -0.9628456286228758 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.584782059109536 47.56104920566722 4.677154261563739 -0.7655172739246098 -0.6434153427787018 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.7224409188706 47.23523076837084 4.287391406433427 -0.9949487068597188 -0.10038461395141068 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.65264034444547 46.88848086489156 3.897628551303115 -0.8786144161511658 0.4775318918473893 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.39963751206891 46.641302422137336 3.5078656961728027 -0.4569430288568942 0.889495963104436 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.05135625823364 46.57959517799292 3.1181028410424907 0.12352572753522682 0.9923413700117987 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.72883168649184 46.72480370520719 2.7283399859121786 0.6610666804382285 0.7503271579880219 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.54414790848896 47.02646496870575 2.3385771307818666 0.9688729771096852 0.24755838549040565 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.56148644404221 47.37974529781825 1.9488142756515543 0.9399754178542727 -0.34124216303042976 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.77482234552896 47.66187270809475 1.559051420521242 0.5844155820430217 -0.8114545134912474 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.18546247597383 47.77199338871442 1.1692885653909297 -0.09998463536509268 -0.9949889811907016 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.57633060772338 46.9332479234133 14.810988494951864 0.91523514505232 0.4029201276445009 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.55561662387539 47.362790303778056 14.421225639821552 0.9497584514656373 -0.31298383963009424 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.76042138428168 47.65117042203763 14.03146278469124 0.6084171841218254 -0.7936173700627215 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.087343110250615 47.773787283635606 13.641699929560927 0.06354764084026046 -0.9979788060593466 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.4271769446983 47.69362697785259 13.251937074430614 -0.5028420832392229 -0.8643782964209826 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.66483937764917 47.43783550492489 12.862174219300302 -0.8989461381573381 -0.43805917487482143 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.71984687803348 47.093035730330826 12.47241136416999 -0.9906253054645163 0.13660711611528548 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.57357135300845 46.77599286187721 12.082648509039677 -0.7468327637561283 0.665011896871315 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.27554848483114 46.594072330594955 11.692885653909364 -0.2501279834606135 0.9682127823417374 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.92670264961194 46.6088808723484 11.303122798779052 0.3312817419047251 0.9435318794193296 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.64516923908614 46.81540362755072 10.91335994364874 0.8005040927810594 0.5993272874154606 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.5262885336333 47.14370240538835 10.523597088518427 0.9986386018691277 0.05216265768607663 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.6103190580531 47.482600001461826 10.133834233388114 0.8585877278361184 -0.5126666691030463 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.868804176439845 47.717329959565255 9.744071378257802 0.4277791971915481 -0.903883265942099 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.21420882993529 47.768401820725174 9.35430852312749 -0.1478952253008616 -0.9890030345419614 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.52956297066073 47.6185202822157 8.964545667997177 -0.6734854598432599 -0.7392004703595049 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.708073049177514 47.31844218983544 8.574782812866864 -0.9710022573712371 -0.23907031639239987 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.68928726722632 46.9697879140046 8.185019957736552 -0.939692620785908 0.34202014332567027 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.77002090193354 46.1052120859954 8.185019957736559 0.9396926207859094 -0.34202014332566755 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.7523895489494 45.7519477359912 8.574782812866871 0.9690782090928098 0.24675377334799425 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.93682160684791 45.450134247871034 8.964545667997184 0.6616914459286314 0.749776253548269 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.339815873444515 45.300029795083844 9.354308523127496 -0.00996566506570883 0.9999503415269176 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.68407943865444 45.41283486783861 9.744071378257809 -0.5837382737489277 0.8119418869356495 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.90065766337111 45.70324192586034 10.133834233388122 -0.9447019816100346 0.327930123566096 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.91059431666595 46.06537953739987 10.523597088518434 -0.9612630704347676 -0.2756325623331256 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.94897631397454 47.08508798486274 10.523597088518427 0.9887082334681232 0.1498533585620983 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.01167628061939 47.455255691397525 10.133834233388114 0.8842082890600406 -0.4670928189958753 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.28209949376999 47.715691292972636 9.744071378257802 0.43350293380903704 -0.901152154954398 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.654363684770175 47.76442309857703 9.35430852312749 -0.18693738452460523 -0.9823718309617279 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.982711480858455 47.58237051940701 8.964545667997177 -0.7341837113383971 -0.6789508656783456 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.13564786856858 47.263437072107 8.574782812866864 -0.9890776908552774 -0.1473951201783485 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.08139224784692 46.911802218447555 8.185019957736552 -0.898651656319175 0.43866296925407433 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.83753499280652 46.65271848323409 7.795257102606239 -0.49222289791850493 0.8704691946098418 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.48982630074021 46.57729031774177 7.405494247475927 0.08729158885867185 0.9961828037637099 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.16053478711396 46.71204135388522 7.015731392345614 0.6361107782357522 0.7715977435246316 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.96545283323555 47.00958760904394 6.625968537215302 0.9612473680330977 0.27568731826008974 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.97317924306747 47.365299634816346 6.236205682084989 0.9483700183132386 -0.31716605802725045 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.180997094501556 47.65409451585359 5.846442826954677 0.6020069325897583 -0.798490859755995 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.51582912043541 47.77442014528069 5.456679971824364 0.04395355603332979 -0.9990335754678232 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.85993466853934 47.683965104226594 5.066917116694052 -0.5295556908065371 -0.8482751737109895 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.09231213632016 47.41453708943271 4.677154261563739 -0.9168514704412495 -0.39922848238786374 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.13124808980476 47.0608780244927 4.287391406433427 -0.9817447262489029 0.19020329251215712 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.963051053246225 46.74734891965405 3.897628551303115 -0.7014163319846829 0.7127518005765764 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.64686599268864 46.58419944779406 3.5078656961728027 -0.17444123105537196 0.9846675870098929 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.29587361036597 46.6278960866943 15.200751350082177 0.41054607281572997 0.9118398555094962 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.024884889425515 46.87105299987316 14.810988494951864 0.8621939410498312 0.5065783335447321 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.944383796022564 47.22613009750767 14.421225639821552 0.9963624300547456 -0.08521682917945166 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.08401265996719 47.562379932685545 14.03146278469124 0.7636476568136981 -0.6456332211425818 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.39235696424987 47.75598768387348 13.641699929560927 0.24974048300923288 -0.9683128064558025 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.75587733721447 47.73566258256263 13.251937074430614 -0.35612680526509966 -0.9344376376043889 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.04071732632615 47.50888879239614 12.862174219300302 -0.8308601204512325 -0.5564813206602364 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.14199238227723 47.159169570239676 12.47241136416999 -0.9996518803696983 0.026384049600540017 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.02241073071866 46.81527947164109 12.082648509039677 -0.8003491277720776 0.5995342139315087 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.72600505002647 46.60384663654441 11.692885653909364 -0.30633965995176815 0.9519222724259752 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.361918639667124 46.60272543394859 11.303122798779052 0.3004710239804816 0.9537909434190064 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.06421637999215 46.81232871609855 10.91335994364874 0.7966414567721031 0.6044521398357515 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.75704245664751 46.32531952294037 10.913359943648747 -0.7053433037373744 -0.7088658715672855 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.45052676692566 46.48854343563705 11.303122798779059 -0.19448382086762733 -0.9809057260617506 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.10492180201386 46.45461524750409 11.692885653909372 0.38152445398537543 -0.9243587458401433 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.83599938224643 46.23490032796492 12.082648509039684 0.829728486931098 -0.5581672132748683 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.73384397175464 45.90299946049253 12.472411364169997 0.9999875044174223 -0.004999100820881356 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.83267590598028 45.570093824465005 12.862174219300309 0.8352676140413411 0.5498436258916592 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.09938815784295 45.34770117973946 13.251937074430622 0.3907471942702337 0.9204980337675589 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.44463663209363 45.31031930245582 13.641699929560934 -0.18466692948090288 0.9828011625736394 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.75276892674253 45.47047048951378 14.031462784691247 -0.6982207538957441 0.7158825174770374 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.921937299132715 45.781099117098776 14.421225639821559 -0.9801680412127061 0.19816813816869952 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.85308406024647 46.200635900381 14.810988494951872 -0.8654126430689731 -0.5010598339683353 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.37394482047181 50.30092514492573 3.50786569617281 0.28042738930600236 -0.9598752415428897 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.076229072199034 50.10298138279021 3.897628551303122 0.7766203030939668 -0.6299689713170294 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.94395467576774 49.77083701088739 4.287391406433434 0.9970776304794553 -0.07639501814566131 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.024085067648386 49.42241841202241 4.6771542615637465 0.8635269773450491 0.5043026466293076 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.28817030839714 49.18143006094159 5.066917116694059 0.42338490943045887 0.9059498984306823 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.642448107190546 49.133433800461425 5.4566799718243715 -0.16707808855855616 0.9859436658976114 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.96113370639286 49.29547048951377 5.846442826954684 -0.6982207538957423 0.7158825174770388 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.13030207878304 49.60609911709877 6.2362056820849965 -0.9801680412127054 0.19816813816870182 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.08593913159912 49.97867128439038 6.625968537215309 -0.9062297959061739 -0.42278547398397665 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.828947350072866 50.252045231852776 7.0157313923456215 -0.4779101600290874 -0.8784087197546331 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.459823435277116 50.31931800828624 7.405494247475934 0.13729636463049874 -0.9905300138104098 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.122913387320324 50.15418257747576 7.7952571026062465 0.6988131112251452 -0.7153042957929404 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.75312434114018 50.57081742252423 7.795257102606239 -0.6988131112251456 0.715304295792941 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.398522684123044 50.40349711293881 7.405494247475927 -0.10781034952992662 0.994171478435304 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.016296705570355 50.49091405911341 7.015731392345614 0.5292329480578946 0.8484765681443142 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.76967645678395 50.795736751916266 6.625968537215302 0.9402666960352357 0.34043874680621294 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.763981403525705 51.18779030377805 6.236205682084989 0.9497584514656378 -0.312983839630095 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.968786163931995 51.476170422037626 5.846442826954677 0.6084171841218253 -0.7936173700627224 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.29964915525608 51.599025230862104 5.456679971824364 0.0569788652483509 -0.9983753847701842 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.64234130307062 51.51461128115311 5.066917116694052 -0.5141747144425602 -0.8576854685885232 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.878287675340694 51.252136649061136 4.677154261563739 -0.9074186682260033 -0.4202277484352379 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.92584845267084 50.902420198863304 4.287391406433427 -0.9866866304429145 0.16263300189448113 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.76856712744799 50.58646734191252 3.897628551303115 -0.7245510884048352 0.6892210968124607 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.460864621095645 50.413600946497716 3.5078656961728027 -0.21171357781759406 0.9773317558371242 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.10920909756326 50.443634525178666 3.1181028410424907 0.37437896140304666 0.9272757913688778 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.83527690709254 50.666176157470545 2.7283399859121786 0.8309326121875794 0.5563730708824145 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.73385134446976 51.00422419891713 2.3385771307818666 0.9999752165588757 -0.007040331528562828 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.84002667512032 51.34081062502559 1.9488142756515543 0.8230163321412806 -0.568017708375994 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.11706516607902 51.559473144919934 1.559051420521242 0.3612855138767732 -0.932455241533232 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.46910871132861 51.58455232607329 1.1692885653909297 -0.225453728205869 -0.9742538767888359 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.77434670120813 51.407370519407 0.7795257102606175 -0.7341837113383981 -0.6789508656783477 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.92728308891826 51.088437072107006 0.38976285513030523 -0.9890776908552794 -0.1473951201783497 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.89765204687664 50.794787914004594 -6.994405055138486e-15 -0.939692620785909 0.34202014332566966 -0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.54700693371559 51.56085502162087 13.251937074430614 -0.35528409885083634 -0.9347583693681234 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.793152391868695 51.38604259863979 12.862174219300302 -0.7655265291060067 -0.643404331066332 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.927929873578314 51.08398233777884 12.47241136416999 -0.9901556652887139 -0.13997056296474736 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.867338889926636 50.72545460733664 12.082648509039677 -0.8891706925359086 0.45757565443893156 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.610814104361225 50.46775626588574 11.692885653909364 -0.4616293832602306 0.8870728901904188 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.252566667682224 50.40552946371142 11.303122798779052 0.13544967787144002 0.9907842271476301 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.92416633525005 50.56162758174733 10.91335994364874 0.6827835652584031 0.7306206970877759 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.746221231435165 50.87872211153967 10.523597088518427 0.9793587382832128 0.202129814100535 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.784083376599646 51.24035709153948 10.133834233388114 0.9162551630090695 -0.4005951525658127 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.023847540261215 51.51371865910081 9.744071378257802 0.5166482235731279 -0.8561977651680331 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.37745806834573 51.59841219618426 9.35430852312749 -0.07270265656773893 -0.9973536603071131 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.71504815397739 51.463333201225275 8.964545667997177 -0.6353527992871655 -0.7722220020421366 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.91263464911077 51.15809071116725 8.574782812866864 -0.9646636245094738 -0.26348451861209543 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.89765204687664 50.794787914004594 8.185019957736552 -0.9396926207859096 0.34202014332566943 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.978385681583866 49.93021208599539 8.185019957736559 0.9396926207859091 -0.34202014332566905 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.96288285382915 49.56882640697197 8.574782812866871 0.9655306670437741 0.2602893217133698 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.15792999438412 49.26420112956883 8.964545667997184 0.6404520994521548 0.7679981173852763 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.492638332502494 49.12705057337 9.354308523127496 0.08260486925486167 0.9965823777166585 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.84536003176774 49.2072213257617 9.744071378257809 -0.5052646295205471 0.862964457063827 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.08790040239712 49.475575784056275 10.133834233388122 -0.9094985805695094 0.4157070265728603 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.13210953006046 49.834582050997206 10.523597088518434 -0.9831804600084095 -0.182636751662017 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.96191985946368 50.153761346525236 10.913359943648747 -0.6995310090137755 -0.7146022442087416 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.63918585567606 50.317109776180466 11.303122798779059 -0.16164100270108037 -0.9868496269674475 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.281203351599515 50.26525928489348 11.692885653909372 0.4349965040931576 -0.9004321414891476 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.01807904651945 50.01705463798343 12.082648509039684 0.8735370125599321 -0.48675772997238564 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.945443968337756 49.662704398687396 12.472411364169997 0.9945954761960909 0.10382600218766079 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.089696921931605 49.33099514037364 12.862174219300309 0.754173886873016 0.6566747660439285 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.39840999409143 49.142484701009515 13.251937074430622 0.23965209993997297 0.970858831650803 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.7593831795444 49.165686124576816 13.641699929560934 -0.361969875814976 0.9321897923719674 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.041422832916766 49.392166986013734 14.031462784691247 -0.8320359647689198 0.5547216899771034 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.14202325085708 49.739614108007636 14.421225639821559 -0.9997033280027814 -0.024356846679403014 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.02462178525854 50.08174981580051 14.810988494951872 -0.8040342186718707 -0.5945830263341823 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.73188732917136 50.29422683783102 15.200751350082184 -0.3161434585265723 -0.9487113963850429 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
diff --git a/mrdna/readers/test/test.json.top b/mrdna/readers/test/test.json.top
deleted file mode 100644
index ccbe1c947870d931f857608066554b7585c925e7..0000000000000000000000000000000000000000
--- a/mrdna/readers/test/test.json.top
+++ /dev/null
@@ -1,416 +0,0 @@
-415 14
-1 T -1 1
-1 T 0 2
-1 T 1 -1
-2 A -1 4
-2 A 3 5
-2 C 4 -1
-3 A -1 7
-3 C 6 8
-3 A 7 -1
-4 A -1 10
-4 T 9 11
-4 C 10 12
-4 C 11 13
-4 G 12 14
-4 G 13 15
-4 A 14 16
-4 G 15 17
-4 C 16 18
-4 A 17 19
-4 C 18 20
-4 C 19 21
-4 G 20 22
-4 T 21 23
-4 G 22 24
-4 A 23 25
-4 C 24 26
-4 T 25 27
-4 T 26 28
-4 T 27 29
-4 C 28 30
-4 A 29 31
-4 C 30 32
-4 A 31 33
-4 A 32 34
-4 C 33 35
-4 T 34 36
-4 T 35 37
-4 T 36 38
-4 C 37 39
-4 G 38 40
-4 G 39 41
-4 A 40 42
-4 G 41 43
-4 C 42 -1
-5 C -1 45
-5 G 44 46
-5 C 45 47
-5 C 46 48
-5 G 47 -1
-6 G -1 50
-6 A 49 51
-6 C 50 52
-6 T 51 -1
-7 C -1 54
-7 T 53 55
-7 A 54 56
-7 T 55 -1
-8 C -1 58
-8 C 57 59
-8 C 58 60
-8 A 59 61
-8 A 60 62
-8 G 61 63
-8 G 62 64
-8 C 63 65
-8 A 64 66
-8 T 65 67
-8 T 66 68
-8 G 67 69
-8 T 68 70
-8 G 69 71
-8 G 70 72
-8 T 71 73
-8 C 72 74
-8 C 73 75
-8 T 74 76
-8 G 75 77
-8 G 76 78
-8 A 77 79
-8 T 78 80
-8 T 79 81
-8 G 80 82
-8 A 81 83
-8 C 82 84
-8 C 83 85
-8 T 84 86
-8 T 85 87
-8 C 86 88
-8 A 87 89
-8 C 88 90
-8 A 89 91
-8 G 90 92
-8 T 91 93
-8 A 92 94
-8 T 93 95
-8 C 94 96
-8 T 95 97
-8 C 96 98
-8 T 97 99
-8 A 98 100
-8 A 99 101
-8 T 100 102
-8 C 101 103
-8 C 102 104
-8 T 103 105
-8 A 104 106
-8 G 105 107
-8 T 106 108
-8 T 107 109
-8 A 108 110
-8 T 109 111
-8 G 110 112
-8 G 111 113
-8 A 112 114
-8 G 113 115
-8 T 114 116
-8 C 115 117
-8 C 116 118
-8 G 117 119
-8 A 118 120
-8 A 119 121
-8 A 120 122
-8 G 121 123
-8 T 122 124
-8 T 123 125
-8 G 124 126
-8 T 125 127
-8 G 126 128
-8 A 127 129
-8 G 128 130
-8 A 129 131
-8 C 130 132
-8 A 131 133
-8 A 132 134
-8 A 133 135
-8 C 134 136
-8 G 135 137
-8 C 136 138
-8 C 137 139
-8 T 138 140
-8 A 139 141
-8 C 140 142
-8 C 141 143
-8 C 142 144
-8 C 143 145
-8 A 144 146
-8 T 145 147
-8 T 146 148
-8 A 147 149
-8 C 148 150
-8 A 149 151
-8 C 150 152
-8 A 151 153
-8 G 152 154
-8 G 153 155
-8 C 154 156
-8 A 155 157
-8 T 156 158
-8 C 157 159
-8 G 158 160
-8 G 159 161
-8 G 160 162
-8 G 161 163
-8 G 162 164
-8 T 163 165
-8 T 164 166
-8 G 165 167
-8 T 166 168
-8 C 167 169
-8 T 168 170
-8 T 169 171
-8 G 170 172
-8 T 171 173
-8 C 172 174
-8 T 173 175
-8 C 174 176
-8 A 175 177
-8 G 176 178
-8 T 177 179
-8 C 178 180
-8 G 179 181
-8 T 180 182
-8 G 181 183
-8 G 182 184
-8 C 183 185
-8 T 184 186
-8 C 185 187
-8 C 186 188
-8 T 187 189
-8 T 188 190
-8 G 189 191
-8 T 190 192
-8 T 191 193
-8 A 192 194
-8 A 193 195
-8 G 194 196
-8 T 195 197
-8 C 196 198
-8 A 197 199
-8 C 198 200
-8 G 199 201
-8 G 200 202
-8 T 201 203
-8 G 202 204
-8 C 203 205
-8 T 204 206
-8 C 205 207
-8 C 206 208
-8 G 207 209
-8 G 208 210
-8 T 209 211
-8 G 210 212
-8 G 211 213
-8 C 212 214
-8 G 213 215
-8 A 214 216
-8 G 215 217
-8 T 216 218
-8 T 217 219
-8 C 218 220
-8 T 219 221
-8 T 220 222
-8 G 221 223
-8 A 222 224
-8 T 223 225
-8 T 224 226
-8 C 225 227
-8 C 226 228
-8 A 227 229
-8 T 228 230
-8 A 229 231
-8 T 230 232
-8 T 231 233
-8 C 232 234
-8 A 233 235
-8 C 234 236
-8 T 235 237
-8 T 236 238
-8 G 237 239
-8 T 238 240
-8 G 239 241
-8 C 240 242
-8 G 241 243
-8 C 242 244
-8 T 243 -1
-9 A -1 246
-9 C 245 247
-9 G 246 248
-9 A 247 249
-9 C 248 250
-9 T 249 251
-9 G 250 252
-9 A 251 253
-9 G 252 254
-9 A 253 255
-9 C 254 256
-9 A 255 257
-9 A 256 258
-9 G 257 259
-9 A 258 260
-9 C 259 261
-9 A 260 262
-9 A 261 263
-9 C 262 264
-9 T 263 265
-9 C 264 266
-9 A 265 267
-9 A 266 268
-9 C 267 269
-9 A 268 270
-9 A 269 271
-9 G 270 272
-9 G 271 273
-9 A 272 274
-9 G 273 275
-9 C 274 276
-9 C 275 277
-9 A 276 278
-9 C 277 279
-9 G 278 280
-9 A 279 281
-9 C 280 -1
-10 C -1 283
-10 G 282 284
-10 A 283 285
-10 T 284 286
-10 G 285 287
-10 G 286 288
-10 G 287 289
-10 G 288 290
-10 T 289 291
-10 A 290 292
-10 G 291 293
-10 G 292 294
-10 C 293 295
-10 G 294 296
-10 T 295 297
-10 T 296 298
-10 T 297 299
-10 G 298 300
-10 C 299 301
-10 C 300 302
-10 C 301 -1
-11 C -1 304
-11 G 303 305
-11 A 304 306
-11 T 305 307
-11 T 306 308
-11 T 307 309
-11 G 308 310
-11 G 309 311
-11 G 310 312
-11 A 311 313
-11 G 312 314
-11 C 313 315
-11 G 314 316
-11 C 315 317
-11 A 316 318
-11 C 317 319
-11 A 318 320
-11 A 319 321
-11 G 320 322
-11 T 321 323
-11 G 322 324
-11 A 323 325
-11 A 324 -1
-12 G -1 327
-12 A 326 328
-12 C 327 329
-12 C 328 330
-12 A 329 331
-12 C 330 332
-12 A 331 333
-12 A 332 334
-12 T 333 335
-12 G 334 336
-12 C 335 337
-12 C 336 338
-12 G 337 339
-12 C 338 340
-12 C 339 341
-12 T 340 342
-12 G 341 343
-12 T 342 344
-12 G 343 345
-12 T 344 346
-12 A 345 347
-12 T 346 348
-12 G 347 -1
-13 T -1 350
-13 A 349 351
-13 T 350 352
-13 G 351 353
-13 G 352 354
-13 A 353 355
-13 A 354 356
-13 G 355 357
-13 A 356 358
-13 G 357 359
-13 A 358 360
-13 T 359 361
-13 G 360 362
-13 A 361 363
-13 T 362 364
-13 T 363 365
-13 A 364 366
-13 T 365 367
-13 C 366 368
-13 A 367 369
-13 A 368 370
-13 G 369 371
-13 A 370 372
-13 A 371 373
-13 C 372 374
-13 T 373 375
-13 C 374 376
-13 G 375 377
-13 C 376 378
-13 C 377 379
-13 A 378 380
-13 A 379 381
-13 G 380 -1
-14 G -1 383
-14 C 382 384
-14 C 383 385
-14 T 384 386
-14 C 385 387
-14 C 386 388
-14 A 387 389
-14 T 388 390
-14 A 389 391
-14 A 390 392
-14 C 391 393
-14 T 392 394
-14 A 393 395
-14 G 394 396
-14 A 395 397
-14 C 396 398
-14 T 397 399
-14 G 398 400
-14 T 399 401
-14 G 400 402
-14 A 401 403
-14 A 402 404
-14 G 403 405
-14 G 404 406
-14 T 405 407
-14 C 406 408
-14 A 407 409
-14 A 408 410
-14 T 409 411
-14 C 410 412
-14 C 411 413
-14 A 412 414
-14 G 413 -1
diff --git a/mrdna/readers/test/test_insert.json b/mrdna/readers/test/test_insert.json
index fec383704d9f16d0d379b680c13d0a229eac50cb..50dc3dc32e00de3024a261645984309863a278f3 100644
--- a/mrdna/readers/test/test_insert.json
+++ b/mrdna/readers/test/test_insert.json
@@ -1 +1 @@
-{"name":"test_insert.json","vstrands":[{"stap_colors":[[23,13369809],[38,12060012]],"num":0,"scafLoop":[],"stap":[[-1,-1,-1,-1],[-1,-1,-1,-1],[0,3,-1,-1],[0,4,0,2],[0,5,0,3],[0,6,0,4],[0,7,0,5],[0,8,0,6],[0,9,0,7],[0,10,0,8],[0,11,0,9],[0,12,0,10],[0,13,0,11],[0,14,0,12],[0,15,0,13],[0,16,0,14],[0,17,0,15],[0,18,0,16],[0,19,0,17],[0,20,0,18],[1,20,0,19],[0,22,1,21],[0,23,0,21],[-1,-1,0,22],[0,25,-1,-1],[0,26,0,24],[0,27,0,25],[5,27,0,26],[0,29,5,28],[0,30,0,28],[0,31,0,29],[0,32,0,30],[0,33,0,31],[0,34,0,32],[0,35,0,33],[0,36,0,34],[0,37,0,35],[0,38,0,36],[-1,-1,0,37],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scaf":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[1,5,0,6],[0,5,0,7],[0,6,0,8],[0,7,0,9],[0,8,0,10],[0,9,0,11],[0,10,0,12],[0,11,0,13],[0,12,0,14],[0,13,0,15],[0,14,0,16],[0,15,0,17],[0,16,0,18],[0,17,0,19],[0,18,0,20],[0,19,0,21],[0,20,0,22],[0,21,0,23],[0,22,0,24],[0,23,0,25],[0,24,0,26],[0,25,0,27],[0,26,0,28],[0,27,0,29],[0,28,0,30],[0,29,0,31],[0,30,0,32],[0,31,0,33],[0,32,0,34],[0,33,0,35],[0,34,0,36],[0,35,1,36],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,0,40],[0,39,0,41],[0,40,-1,-1]],"stapLoop":[],"col":16,"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0],"row":12},{"stap_colors":[[3,1501302]],"num":1,"scafLoop":[],"stap":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,1,4],[1,3,1,5],[1,4,1,6],[1,5,1,7],[1,6,1,8],[1,7,1,9],[1,8,1,10],[1,9,1,11],[1,10,1,12],[1,11,1,13],[1,12,1,14],[1,13,1,15],[1,14,1,16],[1,15,1,17],[1,16,1,18],[1,17,1,19],[1,18,1,20],[1,19,0,20],[0,21,1,22],[1,21,1,23],[1,22,1,24],[1,23,1,25],[1,24,1,26],[1,25,1,27],[1,26,1,28],[1,27,1,29],[1,28,1,30],[1,29,1,31],[1,30,1,32],[1,31,1,33],[1,32,1,34],[1,33,1,35],[1,34,1,36],[1,35,1,37],[1,36,1,38],[1,37,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scaf":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[1,6,0,5],[1,7,1,5],[1,8,1,6],[1,9,1,7],[1,10,1,8],[1,11,1,9],[1,12,1,10],[1,13,1,11],[1,14,1,12],[1,15,1,13],[1,16,1,14],[1,17,1,15],[1,18,1,16],[2,18,1,17],[1,20,2,19],[1,21,1,19],[1,22,1,20],[1,23,1,21],[1,24,1,22],[1,25,1,23],[1,26,1,24],[1,27,1,25],[1,28,1,26],[1,29,1,27],[1,30,1,28],[1,31,1,29],[1,32,1,30],[1,33,1,31],[1,34,1,32],[1,35,1,33],[1,36,1,34],[0,36,1,35],[-1,-1,-1,-1],[-1,-1,-1,-1],[1,40,-1,-1],[1,41,1,39],[-1,-1,1,40]],"stapLoop":[],"col":15,"loop":[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"row":12},{"stap_colors":[[34,8947848]],"num":2,"scafLoop":[],"stap":[[2,1,-1,-1],[2,2,2,0],[2,3,2,1],[2,4,2,2],[2,5,2,3],[2,6,2,4],[2,7,2,5],[2,8,2,6],[2,9,2,7],[2,10,2,8],[2,11,2,9],[2,12,2,10],[2,13,2,11],[2,14,2,12],[2,15,2,13],[2,16,2,14],[2,17,2,15],[2,18,2,16],[2,19,2,17],[2,20,2,18],[2,21,2,19],[2,22,2,20],[2,23,2,21],[2,24,2,22],[2,25,2,23],[2,26,2,24],[2,27,2,25],[2,28,2,26],[2,29,2,27],[2,30,2,28],[2,31,2,29],[2,32,2,30],[2,33,2,31],[2,34,2,32],[-1,-1,2,33],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"skip":[0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scaf":[[-1,-1,-1,-1],[-1,-1,-1,-1],[3,2,2,3],[2,2,2,4],[2,3,2,5],[2,4,2,6],[2,5,2,7],[2,6,2,8],[2,7,2,9],[2,8,2,10],[2,9,2,11],[2,10,2,12],[2,11,2,13],[2,12,2,14],[2,13,2,15],[2,14,2,16],[2,15,2,17],[2,16,2,18],[2,17,1,18],[1,19,2,20],[2,19,2,21],[2,20,2,22],[2,21,2,23],[2,22,2,24],[2,23,2,25],[2,24,2,26],[2,25,2,27],[2,26,2,28],[2,27,2,29],[2,28,2,30],[2,29,2,31],[2,30,2,32],[2,31,3,32],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,2,40],[2,39,2,41],[2,40,-1,-1]],"stapLoop":[],"col":15,"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"row":13},{"stap_colors":[[0,13369344]],"num":3,"scafLoop":[],"stap":[[-1,-1,3,1],[3,0,3,2],[3,1,3,3],[3,2,3,4],[3,3,3,5],[3,4,3,6],[3,5,3,7],[3,6,3,8],[3,7,3,9],[3,8,3,10],[3,9,3,11],[3,10,3,12],[3,11,3,13],[3,12,3,14],[3,13,3,15],[3,14,3,16],[3,15,3,17],[3,16,3,18],[3,17,3,19],[3,18,3,20],[3,19,4,20],[4,21,3,22],[3,21,3,23],[3,22,3,24],[3,23,3,25],[3,24,3,26],[3,25,3,27],[3,26,3,28],[3,27,3,29],[3,28,3,30],[3,29,3,31],[3,30,3,32],[3,31,3,33],[3,32,3,34],[3,33,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0],"scaf":[[-1,-1,-1,-1],[-1,-1,-1,-1],[3,3,2,2],[3,4,3,2],[3,5,3,3],[3,6,3,4],[3,7,3,5],[3,8,3,6],[3,9,3,7],[3,10,3,8],[3,11,3,9],[3,12,3,10],[3,13,3,11],[3,14,3,12],[3,15,3,13],[4,15,3,14],[3,17,4,16],[3,18,3,16],[3,19,3,17],[3,20,3,18],[3,21,3,19],[3,22,3,20],[3,23,3,21],[3,24,3,22],[3,25,3,23],[3,26,3,24],[3,27,3,25],[3,28,3,26],[3,29,3,27],[3,30,3,28],[3,31,3,29],[3,32,3,30],[2,32,3,31],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[3,38,-1,-1],[3,39,3,37],[3,40,3,38],[3,41,3,39],[-1,-1,3,40]],"stapLoop":[],"col":16,"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"row":13},{"stap_colors":[[39,8947848]],"num":4,"scafLoop":[],"stap":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[4,10,-1,-1],[4,11,4,9],[4,12,4,10],[4,13,4,11],[4,14,4,12],[4,15,4,13],[4,16,4,14],[4,17,4,15],[4,18,4,16],[4,19,4,17],[4,20,4,18],[3,20,4,19],[4,22,3,21],[4,23,4,21],[4,24,4,22],[4,25,4,23],[4,26,4,24],[4,27,4,25],[4,28,4,26],[4,29,4,27],[4,30,4,28],[4,31,4,29],[4,32,4,30],[4,33,4,31],[4,34,4,32],[4,35,4,33],[4,36,4,34],[4,37,4,35],[4,38,4,36],[4,39,4,37],[-1,-1,4,38],[-1,-1,-1,-1],[-1,-1,-1,-1]],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scaf":[[-1,-1,4,1],[4,0,4,2],[4,1,4,3],[4,2,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[5,9,4,10],[4,9,4,11],[4,10,4,12],[4,11,4,13],[4,12,4,14],[4,13,4,15],[4,14,3,15],[3,16,4,17],[4,16,4,18],[4,17,4,19],[4,18,4,20],[4,19,4,21],[4,20,4,22],[4,21,4,23],[4,22,4,24],[4,23,4,25],[4,24,4,26],[4,25,4,27],[4,26,4,28],[4,27,4,29],[4,28,4,30],[4,29,4,31],[4,30,4,32],[4,31,4,33],[4,32,4,34],[4,33,4,35],[4,34,4,36],[4,35,4,37],[4,36,4,38],[4,37,4,39],[4,38,5,39],[-1,-1,-1,-1],[-1,-1,-1,-1]],"stapLoop":[],"col":17,"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"row":13},{"stap_colors":[[9,0]],"num":5,"scafLoop":[],"stap":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,5,10],[5,9,5,11],[5,10,5,12],[5,11,5,13],[5,12,5,14],[5,13,5,15],[5,14,5,16],[5,15,5,17],[5,16,5,18],[5,17,5,19],[5,18,5,20],[5,19,5,21],[5,20,5,22],[5,21,5,23],[5,22,5,24],[5,23,5,25],[5,24,5,26],[5,25,5,27],[5,26,0,27],[0,28,5,29],[5,28,5,30],[5,29,5,31],[5,30,5,32],[5,31,5,33],[5,32,5,34],[5,33,5,35],[5,34,5,36],[5,35,5,37],[5,36,5,38],[5,37,5,39],[5,38,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scaf":[[5,1,-1,-1],[5,2,5,0],[5,3,5,1],[-1,-1,5,2],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[5,10,4,9],[5,11,5,9],[5,12,5,10],[5,13,5,11],[5,14,5,12],[5,15,5,13],[5,16,5,14],[5,17,5,15],[5,18,5,16],[5,19,5,17],[5,20,5,18],[5,21,5,19],[5,22,5,20],[-1,-1,5,21],[5,24,-1,-1],[5,25,5,23],[5,26,5,24],[5,27,5,25],[5,28,5,26],[5,29,5,27],[5,30,5,28],[5,31,5,29],[5,32,5,30],[5,33,5,31],[5,34,5,32],[5,35,5,33],[5,36,5,34],[5,37,5,35],[5,38,5,36],[5,39,5,37],[4,39,5,38],[-1,-1,-1,-1],[-1,-1,-1,-1]],"stapLoop":[],"col":17,"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"row":12},{"stap_colors":[],"num":6,"scafLoop":[],"stap":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scaf":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"stapLoop":[],"col":5,"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"row":15}]}
\ No newline at end of file
+{"name":"test_insert.json","vstrands":[{"stap_colors":[[23,13369809],[38,12060012]],"num":0,"scafLoop":[],"stap":[[-1,-1,-1,-1],[-1,-1,-1,-1],[0,3,-1,-1],[0,4,0,2],[0,5,0,3],[0,6,0,4],[0,7,0,5],[0,8,0,6],[0,9,0,7],[0,10,0,8],[0,11,0,9],[0,12,0,10],[0,13,0,11],[0,14,0,12],[0,15,0,13],[0,16,0,14],[0,17,0,15],[0,18,0,16],[0,19,0,17],[0,20,0,18],[1,20,0,19],[0,22,1,21],[0,23,0,21],[-1,-1,0,22],[0,25,-1,-1],[0,26,0,24],[0,27,0,25],[5,27,0,26],[0,29,5,28],[0,30,0,28],[0,31,0,29],[0,32,0,30],[0,33,0,31],[0,34,0,32],[0,35,0,33],[0,36,0,34],[0,37,0,35],[0,38,0,36],[-1,-1,0,37],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scaf":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[1,5,0,6],[0,5,0,7],[0,6,0,8],[0,7,0,9],[0,8,0,10],[0,9,0,11],[0,10,0,12],[0,11,0,13],[0,12,0,14],[0,13,0,15],[0,14,0,16],[0,15,0,17],[0,16,0,18],[0,17,0,19],[0,18,0,20],[0,19,0,21],[0,20,0,22],[0,21,0,23],[0,22,0,24],[0,23,0,25],[0,24,0,26],[0,25,0,27],[0,26,0,28],[0,27,0,29],[0,28,0,30],[0,29,0,31],[0,30,0,32],[0,31,0,33],[0,32,0,34],[0,33,0,35],[0,34,0,36],[0,35,1,36],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,0,40],[0,39,0,41],[0,40,-1,-1]],"stapLoop":[],"col":16,"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0],"row":12},{"stap_colors":[[3,1501302]],"num":1,"scafLoop":[],"stap":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,1,4],[1,3,1,5],[1,4,1,6],[1,5,1,7],[1,6,1,8],[1,7,1,9],[1,8,1,10],[1,9,1,11],[1,10,1,12],[1,11,1,13],[1,12,1,14],[1,13,1,15],[1,14,1,16],[1,15,1,17],[1,16,1,18],[1,17,1,19],[1,18,1,20],[1,19,0,20],[0,21,1,22],[1,21,1,23],[1,22,1,24],[1,23,1,25],[1,24,1,26],[1,25,1,27],[1,26,1,28],[1,27,1,29],[1,28,1,30],[1,29,1,31],[1,30,1,32],[1,31,1,33],[1,32,1,34],[1,33,1,35],[1,34,1,36],[1,35,1,37],[1,36,1,38],[1,37,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scaf":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[1,6,0,5],[1,7,1,5],[1,8,1,6],[1,9,1,7],[1,10,1,8],[1,11,1,9],[1,12,1,10],[1,13,1,11],[1,14,1,12],[1,15,1,13],[1,16,1,14],[1,17,1,15],[1,18,1,16],[2,18,1,17],[1,20,2,19],[1,21,1,19],[1,22,1,20],[1,23,1,21],[1,24,1,22],[1,25,1,23],[1,26,1,24],[1,27,1,25],[1,28,1,26],[1,29,1,27],[1,30,1,28],[1,31,1,29],[1,32,1,30],[1,33,1,31],[1,34,1,32],[1,35,1,33],[1,36,1,34],[0,36,1,35],[-1,-1,-1,-1],[-1,-1,-1,-1],[1,40,-1,-1],[1,41,1,39],[-1,-1,1,40]],"stapLoop":[],"col":15,"loop":[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"row":12},{"stap_colors":[[34,8947848]],"num":2,"scafLoop":[],"stap":[[2,1,-1,-1],[2,2,2,0],[2,3,2,1],[2,4,2,2],[2,5,2,3],[2,6,2,4],[2,7,2,5],[2,8,2,6],[2,9,2,7],[2,10,2,8],[2,11,2,9],[2,12,2,10],[2,13,2,11],[2,14,2,12],[2,15,2,13],[2,16,2,14],[2,17,2,15],[2,18,2,16],[2,19,2,17],[2,20,2,18],[2,21,2,19],[2,22,2,20],[2,23,2,21],[2,24,2,22],[2,25,2,23],[2,26,2,24],[2,27,2,25],[2,28,2,26],[2,29,2,27],[2,30,2,28],[2,31,2,29],[2,32,2,30],[2,33,2,31],[2,34,2,32],[-1,-1,2,33],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"skip":[0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scaf":[[-1,-1,-1,-1],[-1,-1,-1,-1],[3,2,2,3],[2,2,2,4],[2,3,2,5],[2,4,2,6],[2,5,2,7],[2,6,2,8],[2,7,2,9],[2,8,2,10],[2,9,2,11],[2,10,2,12],[2,11,2,13],[2,12,2,14],[2,13,2,15],[2,14,2,16],[2,15,2,17],[2,16,2,18],[2,17,1,18],[1,19,2,20],[2,19,2,21],[2,20,2,22],[2,21,2,23],[2,22,2,24],[2,23,2,25],[2,24,2,26],[2,25,2,27],[2,26,2,28],[2,27,2,29],[2,28,2,30],[2,29,2,31],[2,30,2,32],[2,31,3,32],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,2,40],[2,39,2,41],[2,40,-1,-1]],"stapLoop":[],"col":15,"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"row":13},{"stap_colors":[[0,13369344]],"num":3,"scafLoop":[],"stap":[[-1,-1,3,1],[3,0,3,2],[3,1,3,3],[3,2,3,4],[3,3,3,5],[3,4,3,6],[3,5,3,7],[3,6,3,8],[3,7,3,9],[3,8,3,10],[3,9,3,11],[3,10,3,12],[3,11,3,13],[3,12,3,14],[3,13,3,15],[3,14,3,16],[3,15,3,17],[3,16,3,18],[3,17,3,19],[3,18,3,20],[3,19,4,20],[4,21,3,22],[3,21,3,23],[3,22,3,24],[3,23,3,25],[3,24,3,26],[3,25,3,27],[3,26,3,28],[3,27,3,29],[3,28,3,30],[3,29,3,31],[3,30,3,32],[3,31,3,33],[3,32,3,34],[3,33,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0],"scaf":[[-1,-1,-1,-1],[-1,-1,-1,-1],[3,3,2,2],[3,4,3,2],[3,5,3,3],[3,6,3,4],[3,7,3,5],[3,8,3,6],[3,9,3,7],[3,10,3,8],[3,11,3,9],[3,12,3,10],[3,13,3,11],[3,14,3,12],[3,15,3,13],[4,15,3,14],[3,17,4,16],[3,18,3,16],[3,19,3,17],[3,20,3,18],[3,21,3,19],[3,22,3,20],[3,23,3,21],[3,24,3,22],[3,25,3,23],[3,26,3,24],[3,27,3,25],[3,28,3,26],[3,29,3,27],[3,30,3,28],[3,31,3,29],[3,32,3,30],[2,32,3,31],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[3,38,-1,-1],[3,39,3,37],[3,40,3,38],[3,41,3,39],[-1,-1,3,40]],"stapLoop":[],"col":16,"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"row":13},{"stap_colors":[[39,8947848]],"num":4,"scafLoop":[],"stap":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[4,10,-1,-1],[4,11,4,9],[4,12,4,10],[4,13,4,11],[4,14,4,12],[4,15,4,13],[4,16,4,14],[4,17,4,15],[4,18,4,16],[4,19,4,17],[4,20,4,18],[3,20,4,19],[4,22,3,21],[4,23,4,21],[4,24,4,22],[4,25,4,23],[4,26,4,24],[4,27,4,25],[4,28,4,26],[4,29,4,27],[4,30,4,28],[4,31,4,29],[4,32,4,30],[4,33,4,31],[4,34,4,32],[4,35,4,33],[4,36,4,34],[4,37,4,35],[4,38,4,36],[4,39,4,37],[-1,-1,4,38],[-1,-1,-1,-1],[-1,-1,-1,-1]],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scaf":[[-1,-1,4,1],[4,0,4,2],[4,1,4,3],[4,2,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[5,9,4,10],[4,9,4,11],[4,10,4,12],[4,11,4,13],[4,12,4,14],[4,13,4,15],[4,14,3,15],[3,16,4,17],[4,16,4,18],[4,17,4,19],[4,18,4,20],[4,19,4,21],[4,20,4,22],[4,21,4,23],[4,22,4,24],[4,23,4,25],[4,24,4,26],[4,25,4,27],[4,26,4,28],[4,27,4,29],[4,28,4,30],[4,29,4,31],[4,30,4,32],[4,31,4,33],[4,32,4,34],[4,33,4,35],[4,34,4,36],[4,35,4,37],[4,36,4,38],[4,37,4,39],[4,38,5,39],[-1,-1,-1,-1],[-1,-1,-1,-1]],"stapLoop":[],"col":17,"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"row":13},{"stap_colors":[[9,0]],"num":5,"scafLoop":[],"stap":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,5,10],[5,9,5,11],[5,10,5,12],[5,11,5,13],[5,12,5,14],[5,13,5,15],[5,14,5,16],[5,15,5,17],[5,16,5,18],[5,17,5,19],[5,18,5,20],[5,19,5,21],[5,20,5,22],[5,21,5,23],[5,22,5,24],[5,23,5,25],[5,24,5,26],[5,25,5,27],[5,26,0,27],[0,28,5,29],[5,28,5,30],[5,29,5,31],[5,30,5,32],[5,31,5,33],[5,32,5,34],[5,33,5,35],[5,34,5,36],[5,35,5,37],[5,36,5,38],[5,37,5,39],[5,38,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scaf":[[5,1,-1,-1],[5,2,5,0],[5,3,5,1],[-1,-1,5,2],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[5,10,4,9],[5,11,5,9],[5,12,5,10],[5,13,5,11],[5,14,5,12],[5,15,5,13],[5,16,5,14],[5,17,5,15],[5,18,5,16],[5,19,5,17],[5,20,5,18],[5,21,5,19],[5,22,5,20],[-1,-1,5,21],[5,24,-1,-1],[5,25,5,23],[5,26,5,24],[5,27,5,25],[5,28,5,26],[5,29,5,27],[5,30,5,28],[5,31,5,29],[5,32,5,30],[5,33,5,31],[5,34,5,32],[5,35,5,33],[5,36,5,34],[5,37,5,35],[5,38,5,36],[5,39,5,37],[4,39,5,38],[-1,-1,-1,-1],[-1,-1,-1,-1]],"stapLoop":[],"col":17,"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"row":12},{"stap_colors":[],"num":6,"scafLoop":[],"stap":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"skip":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"scaf":[[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]],"stapLoop":[],"col":5,"loop":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"row":15}]}
diff --git a/mrdna/readers/test/test_insert.json.oxdna b/mrdna/readers/test/test_insert.json.oxdna
index 382e21729e7ec34e838bd44b73a24be3b3054329..c86ba89b884930d7ab058b7c371608d5be41265b 100644
--- a/mrdna/readers/test/test_insert.json.oxdna
+++ b/mrdna/readers/test/test_insert.json.oxdna
@@ -1,66 +1,66 @@
 t = 0
 b = 145.600000 145.600000 145.600000
 E = 0.000000 0.000000 0.000000
-35.75312434114018 45.470817422524235 15.980277060342788 -0.6988131112251451 0.715304295792938 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.46830708232107 45.31526274652054 15.590514205212475 -0.22411767985996783 0.9745620891324385 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.144150399289146 45.330773162168974 15.200751350082163 0.31614345852657066 0.9487113963850421 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.75312434114018 45.470817422524235 15.980277060342788 -0.6988131112251451 0.7153042957929383 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.46830708232107 45.31526274652054 15.590514205212475 -0.22411767985996772 0.9745620891324387 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.144150399289146 45.330773162168974 15.200751350082163 0.3161434585265709 0.9487113963850422 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
 33.37179933844421 47.722103913305695 15.200751350082177 -0.41054607281573 -0.9118398555094973 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
 33.02080474653338 47.76580016075659 15.59051420521249 0.17444491370231704 -0.9846669345943282 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
 32.70618382801968 47.60418257747576 15.980277060342802 0.6988131112251446 -0.7153042957929399 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.54475956148986 49.29581742252423 15.980277060342805 -0.6988131112251453 0.7153042957929391 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.25994230267075 49.14026274652053 15.590514205212493 -0.22411767985996747 0.9745620891324395 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.93578561963883 49.15577316216897 15.20075135008218 0.31614345852657155 0.9487113963850428 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.561656122283225 49.93021208599539 -7.771561172376096e-16 0.939692620785908 -0.34202014332566855 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.53985546526863 49.59441044543136 0.38976285513031145 0.9760270491435683 0.21764925761439569 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.72845682719759 49.27513424787104 0.7795257102606237 0.6616914459286316 0.7497762535482674 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.08470719693282 49.12638638863009 1.1952727557329568 0.06794082970325127 0.9976893522831809 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.45783409725226 49.225464982802905 1.6110198012052899 -0.5539373374958084 0.8325583619951542 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.69336273068542 49.53135142316657 2.026766846677623 -0.9464850598844207 0.3227476280557057 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.69378407840538 49.917408509659424 2.4425138921499556 -0.9471873060843481 -0.3206808494323836 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.45892370216163 50.223808338699676 2.8582609376222883 -0.5557533456780965 -0.8313472311661366 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.08601396183772 50.3237011669548 3.274007983094621 0.06576288819508258 -0.9978352782580103 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.72943975051424 50.17573129372283 3.6897550285669536 0.6600532404008933 -0.7512188228713925 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.53682304085043 49.84115834992202 4.105502074039286 0.9810810898405685 -0.1935972498700393 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.58790728524621 49.45849576808292 4.521249119511619 0.8959406825142722 0.4441737198617906 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.86154357082444 49.186166124488615 4.936996164983952 0.43988020655055754 0.8980564591856346 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.244446284140786 49.13691408188902 5.3527432104562855 -0.19829098231001846 0.9801431968516277 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.578093434312784 49.33113002033732 5.768490255928619 -0.7543695659300221 0.6564499661044632 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.724354868019155 49.6884084055993 6.184237301400952 -0.9981386221073028 0.060985990667825674 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.62267824949908 50.0608357365131 6.599984346873285 -0.8286775912405104 -0.5597262275218364 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.315157769870716 50.29422683783102 7.015731392345618 -0.316143458526572 -0.9487113963850434 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.96154078962503 50.30217125564545 7.40549424747593 0.2732181752162282 -0.961952092742417 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.663494595457585 50.10785396657858 7.795257102606243 0.7699618321619818 -0.63808994429764 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.527898468248125 49.778909544261076 8.185019957736555 0.9959553775110761 -0.08984924043513576 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.602433559244055 49.43100831848251 8.574782812866868 0.8717302258511899 0.48998613586246953 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.86089027809679 49.1864866074467 8.96454566799718 0.44096902776330704 0.897522320922151 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.21238465816112 49.13132825838521 9.354308523127493 -0.14485493901058033 0.9894529026913013 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.53331688103983 49.28492920566787 9.744071378257805 -0.6797419771417619 0.7334513238868746 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.710834034380895 49.59327706597775 10.133834233388118 -0.9756038993768763 0.21953822337040585 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.68251381740292 49.947944104195734 10.52359708851843 -0.9284035377469182 -0.37157350699290553 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.45831477816237 50.22421486539137 10.913359943648743 -0.5547384723459946 -0.8320247756522833 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.11707448023534 50.32494123611259 11.303122798779055 0.013995357532387731 -0.9999020601876669 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.77878698681533 50.214703699476466 11.692885653909368 0.5778078465657449 -0.8161728324607824 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.56240803410816 49.93226628780204 12.08264850903968 0.9384394344110166 -0.34544381300340415 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.54402532301732 49.57694556138582 12.472411364169993 0.9690772862290777 0.24675739769029353 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.72846019219666 49.275131278219355 12.862174219300305 0.6616858375968593 0.749781202967734 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.99195475891848 49.14004425137888 13.251937074430618 0.22252822639381956 0.974926247701856 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.903691545284474 50.812209696221935 14.421225639821552 -0.9497584514656365 0.31298383963009424 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.89799649202623 51.20426324808372 14.810988494951864 -0.9402666960352343 -0.3404387468062127 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.651376243239824 51.50908594088658 15.200751350082177 -0.5292329480578936 -0.848476568144313 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.269150264687134 51.59650288706118 15.59051420521249 0.10781034952992657 -0.9941714784353025 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.54475956148986 49.29581742252423 15.980277060342805 -0.6988131112251449 0.715304295792938 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.25994230267075 49.140262746520534 15.590514205212493 -0.2241176798599677 0.9745620891324384 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.93578561963883 49.15577316216897 15.20075135008218 0.3161434585265708 0.948711396385042 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.561656122283225 49.93021208599539 -7.771561172376096e-16 0.9396926207859064 -0.3420201433256685 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.53985546526863 49.59441044543136 0.38976285513031145 0.976027049143567 0.2176492576143949 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.72845682719759 49.27513424787104 0.7795257102606237 0.661691445928631 0.7497762535482659 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.08470719693282 49.12638638863009 1.1952727557329568 0.06794082970325166 0.9976893522831793 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.45783409725226 49.225464982802905 1.6110198012052899 -0.5539373374958071 0.8325583619951532 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.69336273068542 49.53135142316657 2.026766846677623 -0.946485059884419 0.3227476280557057 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.69378407840538 49.917408509659424 2.4425138921499556 -0.9471873060843468 -0.3206808494323827 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.45892370216163 50.223808338699676 2.8582609376222883 -0.5557533456780961 -0.8313472311661352 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.08601396183772 50.3237011669548 3.274007983094621 0.06576288819508203 -0.9978352782580089 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.72943975051424 50.175731293722826 3.6897550285669536 0.660053240400892 -0.7512188228713916 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.53682304085043 49.84115834992202 4.105502074039286 0.981081089840567 -0.1935972498700395 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.58790728524621 49.45849576808292 4.521249119511619 0.8959406825142711 0.4441737198617895 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.86154357082444 49.186166124488615 4.936996164983952 0.4398802065505574 0.898056459185633 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.244446284140786 49.13691408188902 5.3527432104562855 -0.19829098231001752 0.9801431968516263 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.578093434312784 49.33113002033732 5.768490255928619 -0.7543695659300205 0.6564499661044625 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.724354868019155 49.6884084055993 6.184237301400952 -0.998138622107301 0.06098599066782606 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.622678249499074 50.0608357365131 6.599984346873285 -0.8286775912405093 -0.5597262275218351 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.315157769870716 50.29422683783102 7.015731392345618 -0.3161434585265718 -0.9487113963850416 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.96154078962503 50.30217125564544 7.40549424747593 0.2732181752162274 -0.9619520927424153 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.663494595457585 50.10785396657858 7.795257102606243 0.7699618321619803 -0.6380899442976391 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.527898468248125 49.778909544261076 8.185019957736555 0.9959553775110745 -0.0898492404351357 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.60243355924406 49.43100831848251 8.574782812866868 0.8717302258511885 0.4899861358624687 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.86089027809679 49.1864866074467 8.96454566799718 0.4409690277633064 0.8975223209221497 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.21238465816112 49.13132825838522 9.354308523127493 -0.14485493901058022 0.9894529026912999 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.53331688103983 49.28492920566787 9.744071378257805 -0.6797419771417611 0.7334513238868736 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.710834034380895 49.59327706597775 10.133834233388118 -0.9756038993768752 0.21953822337040535 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.68251381740292 49.947944104195734 10.52359708851843 -0.9284035377469171 -0.3715735069929055 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.45831477816237 50.22421486539137 10.913359943648743 -0.5547384723459937 -0.8320247756522826 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.11707448023534 50.32494123611259 11.303122798779055 0.01399535753238812 -0.9999020601876659 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.77878698681533 50.214703699476466 11.692885653909368 0.5778078465657448 -0.8161728324607814 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.56240803410816 49.93226628780204 12.08264850903968 0.9384394344110161 -0.34544381300340343 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.54402532301732 49.57694556138582 12.472411364169993 0.9690772862290769 0.2467573976902938 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.72846019219666 49.275131278219355 12.862174219300305 0.6616858375968584 0.7497812029677337 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.99195475891848 49.14004425137888 13.251937074430618 0.22252822639381892 0.9749262477018552 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.903691545284474 50.812209696221935 14.421225639821552 -0.949758451465636 0.3129838396300944 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.89799649202623 51.20426324808372 14.810988494951864 -0.940266696035234 -0.34043874680621233 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.651376243239824 51.50908594088658 15.200751350082177 -0.5292329480578937 -0.8484765681443127 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.269150264687134 51.59650288706118 15.59051420521249 0.1078103495299265 -0.9941714784353024 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
 34.91454860767 51.42918257747576 15.980277060342802 0.6988131112251446 -0.7153042957929399 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
 37.53622185501599 50.32497020491614 1.1692885653909366 0.009965665065707036 -0.999950341526917 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
 37.89729099547497 50.208643748578005 0.7795257102606244 -0.5918162356992592 -0.8060729142966898 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
 38.11642014453254 49.89899041875694 0.3897628551303122 -0.9570314841285477 -0.2899840312615668 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
 38.10601682652696 49.519787914004596 0.0 -0.9396926207859083 0.3420201433256689 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.978385681583866 47.380212085995396 -6.994405055138486e-15 0.9396926207859094 -0.34202014332567027 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.96198410287354 47.02219928837079 0.38976285513030523 0.9670285853031244 0.25466785271533754 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.152594615545105 46.71870331227512 0.7795257102606175 0.64934439751718 0.7604944795414714 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.48221047283636 46.57800661128557 1.1692885653909297 0.09998463536509182 0.9949889811907027 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.10169102725237 46.76762948059299 8.964545667997177 0.7341837113383977 0.6789508656783472 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.43003882334065 46.58557690142296 9.35430852312749 0.18693738452460484 0.9823718309617293 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.802303014340836 46.63430870702736 9.744071378257802 -0.4335029338090382 0.9011521549543989 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.07272622749144 46.89474430860247 10.133834233388114 -0.8842082890600419 0.4670928189958753 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+36.978385681583866 47.380212085995396 -6.994405055138486e-15 0.9396926207859072 -0.34202014332567016 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+36.96198410287354 47.02219928837079 0.38976285513030523 0.9670285853031225 0.2546678527153364 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.152594615545105 46.71870331227512 0.7795257102606175 0.6493443975171791 0.7604944795414694 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.48221047283636 46.57800661128557 1.1692885653909297 0.09998463536509228 0.9949889811907006 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.10169102725237 46.76762948059299 8.964545667997177 0.7341837113383977 0.6789508656783467 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.43003882334065 46.58557690142296 9.35430852312749 0.18693738452460495 0.9823718309617291 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.802303014340836 46.63430870702736 9.744071378257802 -0.433502933809038 0.9011521549543988 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+38.07272622749144 46.89474430860247 10.133834233388114 -0.8842082890600418 0.4670928189958753 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
 38.135426194136286 47.264912015137256 10.523597088518427 -0.9887082334681243 -0.14985335856209903 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
 38.020186128118674 47.537671283901446 10.91335994364874 -0.7966414567721039 -0.6044521398357526 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
 37.7224838684437 47.7472745660514 11.303122798779052 -0.3004710239804816 -0.9537909434190077 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
@@ -98,35 +98,35 @@ E = 0.000000 0.000000 0.000000
 37.25545515803796 49.19795476814721 7.0157313923456215 0.47791016002908676 0.8784087197546322 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
 36.99846337651171 49.47132871560961 6.625968537215309 0.9062297959061729 0.4227854739839763 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
 36.95410042932779 49.84390088290122 6.2362056820849965 0.9801680412127044 -0.19816813816870157 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.903691545284474 50.812209696221935 6.236205682084984 -0.9497584514656373 0.31298383963009435 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.89799649202623 51.20426324808372 6.6259685372152965 -0.9402666960352349 -0.34043874680621306 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.651376243239824 51.50908594088658 7.015731392345609 -0.5292329480578939 -0.8484765681443137 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.269150264687134 51.59650288706118 7.4054942474759216 0.10781034952992674 -0.9941714784353032 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.91454860767 51.42918257747576 7.795257102606234 0.6988131112251451 -0.7153042957929403 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.77002090193354 51.20521208599539 8.185019957736547 0.939692620785909 -0.342020143325669 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.76586249227738 50.80659484074618 8.61375909837989 0.9466233035461822 0.3223419320896892 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.01242199859849 50.49335146823268 9.042498239023235 0.5356907930109921 0.8444142196121851 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.40086189042121 50.40375542467216 9.47123737966658 -0.11170902669353282 0.9937409588797196 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.759715087870845 50.5773566437379 9.899976520309924 -0.7097976891095973 0.7044055937701491 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.93057481768411 50.937523207023666 10.328715660953268 -0.9945639054650394 0.10412798829387357 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.83801932335246 51.32526858874983 10.757454801596612 -0.8403047482456236 -0.542114314583059 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.522904914110605 51.5694322831622 11.186193942239957 -0.31511406617586263 -0.9490538052703412 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.12433096856664 51.562234331060786 11.6149330828833 0.34917584306408594 -0.9370572184346511 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.81823799127549 51.30685208846357 12.043672223526645 0.8593308052159966 -0.5114201474392923 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.739743075231864 50.916017662221144 12.47241136416999 0.9901556652887121 0.13997056296474755 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.70691806649222 49.87305443861417 12.472411364169993 -0.969077286229078 -0.24675739769029345 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.688535355401385 49.51773371219795 12.08264850903968 -0.9384394344110166 0.34544381300340427 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.47215640269422 49.23529630052352 11.692885653909368 -0.5778078465657447 0.8161728324607824 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.133868909274206 49.125058763887395 11.303122798779055 -0.013995357532387565 0.9999020601876666 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.792628611347176 49.22578513460862 10.913359943648743 0.5547384723459945 0.8320247756522828 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.56842957210662 49.502055895804254 10.52359708851843 0.9284035377469178 0.37157350699290526 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.54010935512865 49.85672293402224 10.133834233388118 0.9756038993768756 -0.21953822337040582 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.71762650846971 50.16507079433212 9.744071378257805 0.6797419771417612 -0.7334513238868742 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.038558731348424 50.31867174161477 9.354308523127493 0.14485493901058005 -0.9894529026913004 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.390053111412755 50.263513392553286 8.96454566799718 -0.44096902776330676 -0.89752232092215 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.64850983026548 50.01899168151748 8.574782812866868 -0.871730225851189 -0.4899861358624688 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.72304492126142 49.67109045573891 8.185019957736555 -0.9959553775110749 0.08984924043513577 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.58744879405196 49.34214603342141 7.795257102606244 -0.7699618321619807 0.6380899442976392 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.903691545284474 50.812209696221935 6.236205682084984 -0.9497584514656361 0.31298383963009474 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.89799649202623 51.20426324808372 6.6259685372152965 -0.9402666960352343 -0.34043874680621217 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.651376243239824 51.50908594088658 7.015731392345609 -0.5292329480578939 -0.8484765681443127 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.269150264687134 51.59650288706118 7.4054942474759216 0.1078103495299262 -0.9941714784353025 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.91454860767 51.42918257747576 7.795257102606234 0.6988131112251444 -0.7153042957929402 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.77002090193354 51.20521208599539 8.185019957736547 0.9396926207859083 -0.3420201433256692 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.76586249227738 50.80659484074618 8.61375909837989 0.9466233035461818 0.3223419320896887 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.01242199859849 50.49335146823268 9.042498239023235 0.5356907930109922 0.8444142196121844 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.40086189042121 50.40375542467216 9.47123737966658 -0.11170902669353239 0.9937409588797192 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.759715087870845 50.5773566437379 9.899976520309924 -0.7097976891095967 0.7044055937701491 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.93057481768411 50.937523207023666 10.328715660953268 -0.9945639054650389 0.10412798829387394 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.83801932335246 51.32526858874983 10.757454801596612 -0.8403047482456235 -0.5421143145830585 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.522904914110605 51.5694322831622 11.186193942239957 -0.31511406617586285 -0.9490538052703407 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.12433096856664 51.562234331060786 11.6149330828833 0.3491758430640855 -0.9370572184346508 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.81823799127549 51.30685208846357 12.043672223526645 0.859330805215996 -0.5114201474392924 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.739743075231864 50.916017662221144 12.47241136416999 0.9901556652887118 0.13997056296474716 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.70691806649222 49.87305443861417 12.472411364169993 -0.9690772862290769 -0.2467573976902939 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.688535355401385 49.51773371219795 12.08264850903968 -0.9384394344110161 0.3454438130034033 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.47215640269422 49.23529630052352 11.692885653909368 -0.5778078465657448 0.8161728324607814 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.133868909274206 49.125058763887395 11.303122798779055 -0.01399535753238821 0.9999020601876659 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.792628611347176 49.22578513460862 10.913359943648743 0.5547384723459937 0.8320247756522827 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.56842957210662 49.502055895804254 10.52359708851843 0.9284035377469172 0.3715735069929055 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.54010935512865 49.85672293402224 10.133834233388118 0.9756038993768753 -0.21953822337040538 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.71762650846971 50.16507079433212 9.744071378257805 0.6797419771417612 -0.7334513238868736 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.038558731348424 50.31867174161477 9.354308523127493 0.1448549390105804 -0.9894529026913 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.390053111412755 50.263513392553286 8.96454566799718 -0.44096902776330626 -0.8975223209221499 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.64850983026548 50.01899168151748 8.574782812866868 -0.8717302258511886 -0.489986135862469 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.72304492126142 49.67109045573891 8.185019957736555 -0.9959553775110748 0.08984924043513555 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.58744879405196 49.34214603342141 7.795257102606244 -0.7699618321619807 0.6380899442976391 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
 33.28940259988451 49.14782874435455 7.405494247475931 -0.2732181752162277 0.9619520927424157 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
 33.003175332971274 47.76240411974595 7.405494247475927 0.2038272696391607 -0.9790068662432589 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
 32.70618382801968 47.60418257747576 7.795257102606239 0.6988131112251442 -0.7153042957929414 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
@@ -230,20 +230,20 @@ E = 0.000000 0.000000 0.000000
 32.793109292257284 50.224535017197084 1.6110198012052905 0.5539373374958083 -0.8325583619951545 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
 33.166236192576726 50.3236136113699 1.1952727557329574 -0.06794082970325158 -0.9976893522831812 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
 33.522486562311954 50.17486575212895 0.7795257102606244 -0.6616914459286322 -0.7497762535482676 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.89332624760205 50.59262948059298 0.7795257102606121 0.7341837113383984 0.6789508656783486 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.19856423748157 50.41544767392669 1.1692885653909244 0.22545372820586873 0.9742538767888367 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.550607782731156 50.44052685508005 1.5590514205212367 -0.3612855138767738 0.9324552415332323 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.82764627368986 50.659189374974396 1.948814275651549 -0.8230163321412811 0.5680177083759937 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.933821604340416 50.99577580108286 2.3385771307818612 -0.999975216558876 0.0070403315285623765 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.83239604171764 51.33382384252944 2.7283399859121733 -0.8309326121875793 -0.556373070882415 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.55846385124692 51.55636547482132 3.1181028410424854 -0.3743789614030463 -0.927275791368878 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.20680832771453 51.58639905350227 3.5078656961727974 0.21171357781759448 -0.9773317558371241 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.89910582136219 51.41353265808747 3.8976285513031095 0.7245510884048355 -0.6892210968124604 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.741824496139344 51.09757980113668 4.2873914064334215 0.9866866304429144 -0.16263300189448066 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.789385273469485 50.74786335093885 4.677154261563734 0.9074186682260028 0.4202277484352382 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.025331645739556 50.48538871884688 5.0669171166940465 0.5141747144425597 0.8576854685885231 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.3680237935541 50.40097476913788 5.456679971824359 -0.05697886524835128 0.9983753847701837 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.698886784878184 50.52382957796236 5.8464428269546715 -0.6084171841218253 0.7936173700627217 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.89332624760205 50.59262948059298 0.7795257102606121 0.7341837113383978 0.6789508656783472 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.19856423748157 50.41544767392669 1.1692885653909244 0.22545372820586906 0.9742538767888352 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.550607782731156 50.44052685508005 1.5590514205212367 -0.36128551387677277 0.9324552415332314 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.82764627368986 50.659189374974396 1.948814275651549 -0.8230163321412798 0.5680177083759936 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.933821604340416 50.99577580108286 2.3385771307818612 -0.9999752165588748 0.007040331528563001 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.83239604171764 51.33382384252944 2.7283399859121733 -0.8309326121875786 -0.5563730708824138 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.55846385124692 51.55636547482132 3.1181028410424854 -0.37437896140304644 -0.9272757913688767 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.20680832771453 51.58639905350227 3.5078656961727974 0.21171357781759356 -0.9773317558371232 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.89910582136219 51.41353265808747 3.8976285513031095 0.7245510884048342 -0.68922109681246 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.741824496139344 51.09757980113668 4.2873914064334215 0.9866866304429132 -0.16263300189448113 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.789385273469485 50.74786335093885 4.677154261563734 0.907418668226002 0.4202277484352371 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.025331645739556 50.48538871884688 5.0669171166940465 0.5141747144425597 0.8576854685885218 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.3680237935541 50.40097476913788 5.456679971824359 -0.05697886524835055 0.9983753847701826 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.698886784878184 50.52382957796236 5.8464428269546715 -0.6084171841218241 0.7936173700627213 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
 37.12326880171797 50.15452951048622 5.846442826954684 0.6982207538957416 -0.715882517477038 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
 37.44195440092028 50.31656619953856 5.4566799718243715 0.1670780885585559 -0.9859436658976104 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
 37.796232199713685 50.2685699390584 5.066917116694059 -0.4233849094304586 -0.9059498984306814 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
@@ -251,146 +251,146 @@ E = 0.000000 0.000000 0.000000
 38.140447832343085 49.6791629891126 4.287391406433434 -0.9970776304794546 0.07639501814566135 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
 38.00817343591179 49.34701861720978 3.8976285513031215 -0.7766203030939662 0.6299689713170291 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
 37.710457687639014 49.14907485507426 3.5078656961728094 -0.2804273893060022 0.9598752415428893 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.43753651542219 47.76580055220593 3.5078656961728027 0.17444123105537362 -0.9846675870098948 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.1213514548646 47.60265108034594 3.897628551303115 0.7014163319846852 -0.7127518005765769 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.95315441830607 47.28912197550729 4.287391406433427 0.9817447262489051 -0.19020329251215629 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.99209037179066 46.935462910567274 4.677154261563739 0.9168514704412509 0.3992284823878656 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.22446783957149 46.6660348957734 5.066917116694052 0.5295556908065372 0.8482751737109918 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.568573387675414 46.5755798547193 5.456679971824364 -0.04395355603333098 0.9990335754678252 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.90340541360927 46.6959054841464 5.846442826954677 -0.6020069325897603 0.7984908597559959 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.11122326504336 46.98470036518365 6.236205682084989 -0.9483700183132407 0.31716605802725006 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.118949674875275 47.340412390956054 6.625968537215302 -0.9612473680330993 -0.27568731826009124 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.92386772099687 47.637958646114775 7.015731392345614 -0.6361107782357527 -0.7715977435246337 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.594576207370615 47.772709682258224 7.405494247475927 -0.08729158885867103 -0.9961828037637118 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.24686751530431 47.697281516765905 7.795257102606239 0.4922228979185066 -0.8704691946098428 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.003010260263906 47.43819778155244 8.185019957736552 0.8986516563191769 -0.4386629692540743 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.948754639542244 47.086562927892984 8.574782812866864 0.9890776908552789 0.14739512017834952 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.93682160684791 45.45013424787104 0.7795257102606237 0.6616914459286309 0.7497762535482662 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.339815873444515 45.30002979508385 1.169288565390936 -0.00996566506570723 0.9999503415269151 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.7397384608735 45.45813624568086 1.5590514205212482 -0.6765033107806733 0.7364395905318941 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.91811914993644 45.763567763802214 1.9488142756515605 -0.9738044592189127 0.22738706032964384 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.929163234324754 45.974739875057125 2.182671988729748 -0.9922112665327716 -0.12456645842854097 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.86626172833062 46.17662853971045 2.416529701807935 -0.8873754232092136 -0.4610475661840818 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.737227633669775 46.34415714857141 2.650387414886122 -0.6723185987744811 -0.7402619142856902 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.55808828684303 46.45651695806893 2.8842451279643093 -0.3737530207298999 -0.9275282634482204 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.351094602228244 46.49975174616172 3.1181028410424965 -0.02876354637192924 -0.999586243602875 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.14195728400467 46.468491315933036 3.3519605541206836 0.3197986506673674 -0.9474855265550642 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.95665329727484 46.36661852823257 3.5858182671988708 0.6286386285504135 -0.7776975470542848 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.81819926689334 46.20678701118118 3.819675980277058 0.8593953458529222 -0.5113116853019621 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.74379258042387 46.00884945188414 4.053533693355245 0.9834064899686992 -0.18141575314023695 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.742675299083594 45.79739169238064 4.287391406433432 0.9852686255358235 0.1710138460322605 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.814986200488256 45.59867891999326 4.521249119511619 0.8647504565280564 0.5022018000112252 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.951743541072055 45.43739326604884 4.7551068325898065 0.6368215555550581 0.7710112232519268 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.13596067926362 45.333568036126906 4.988964545667994 0.32979299190245237 0.9440532731218221 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.344755987763044 45.300099371372205 5.222822258746181 -0.01819918892992267 0.9998343810463258 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.55219498252637 45.34114441764348 5.456679971824368 -0.3639308468688089 0.9314259705942003 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.73251164736078 45.451604966052535 5.690537684902555 -0.6644586215928189 0.7473250565791084 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.86330883311279 45.617760701948676 5.924395397980742 -0.8824539311794974 0.4703988300855426 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.92834020957863 45.81897340643522 6.158253111058929 -0.9908395586225618 0.13504432260796187 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.91952822363974 46.03025043139451 6.3921108241371165 -0.9761529153910827 -0.2170840523241767 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.837967412861985 46.22534903855793 6.625968537215304 -0.8402182307614912 -0.5422483975965497 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.69378845288616 46.380036012386114 6.859826250293491 -0.5999199641351143 -0.800060020643526 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.50489982529568 46.47509766995014 7.093683963371678 -0.28510558481765724 -0.9584961165835664 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.294763403508775 46.498726394215865 7.327541676449865 0.0651217848271965 -0.9978773236931063 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.08948025137141 46.447987259217506 7.561399389528052 0.40726037172279883 -0.9133120986958423 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.91454860767 46.32918257747576 7.795257102606239 0.6988131112251438 -0.7153042957929381 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.54475956148986 46.74581742252423 7.795257102606239 -0.6988131112251436 0.7153042957929407 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.24776805653827 46.58759588025404 7.405494247475927 -0.20382726963916048 0.9790068662432581 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.87914405106533 46.6278960866943 7.015731392345614 0.41054607281573136 0.9118398555094966 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.62760561747006 46.84014276312264 6.653808741153181 0.8297767954745172 0.5580953947955858 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.52586987999906 47.153144480293136 6.291886089960748 0.999336357926186 0.03642586617810745 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.604548058136224 47.47272229478509 5.929963438768315 0.8682060610309167 -0.4962038246418298 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.839966710872325 47.702718584264645 5.568040787575882 0.47584163980407934 -0.8795309737744115 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.16129082753512 47.77392987045802 5.206118136383449 -0.05969855463391677 -0.9982164507633707 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.47183734172982 47.66492942205542 4.844195485191015 -0.5772760782917372 -0.8165490367590374 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.678166054935396 47.40851433408794 4.482272833998582 -0.9211572669677018 -0.38919055681323234 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.71819481507068 47.08183722501466 4.120350182806149 -0.9878718671931871 0.15527129164222853 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.57987938681947 46.78319182066675 3.7584275316137163 -0.7573461534411665 0.6530136322220762 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.30483743608223 46.60243740007048 3.3965048804212836 -0.29894290221243025 0.954270999882533 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.975826209531455 46.593961078108975 3.034582229228851 0.24940914203886583 0.9683982031516978 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.6918417445378 46.760313291417695 2.672659578036418 0.72271658369496 0.6911445143038365 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.53833199679544 47.05144039867245 2.3107369268439855 0.9785661632655553 0.2059326688792496 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.56148644404221 47.37974529781825 1.9488142756515525 0.9399754178542725 -0.3412421630304292 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.77482234552896 47.66187270809475 1.5590514205212402 0.5844155820430219 -0.8114545134912469 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.18546247597383 47.77199338871442 1.169288565390928 -0.09998463536509217 -0.9949889811907013 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.57633060772338 46.9332479234133 14.810988494951864 0.91523514505232 0.4029201276445008 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.55561662387539 47.362790303778056 14.421225639821552 0.9497584514656372 -0.31298383963009446 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.76042138428168 47.65117042203763 14.03146278469124 0.6084171841218252 -0.7936173700627216 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.087343110250615 47.773787283635606 13.641699929560927 0.06354764084026021 -0.9979788060593466 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.4271769446983 47.69362697785259 13.251937074430614 -0.5028420832392231 -0.8643782964209825 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.66483937764917 47.43783550492489 12.862174219300302 -0.8989461381573383 -0.43805917487482116 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.71984687803348 47.093035730330826 12.47241136416999 -0.9906253054645162 0.1366071161152857 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.57357135300845 46.77599286187721 12.082648509039677 -0.746832763756128 0.6650118968713151 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.27554848483114 46.594072330594955 11.692885653909364 -0.25012798346061305 0.9682127823417372 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.92670264961194 46.6088808723484 11.303122798779052 0.33128174190472537 0.9435318794193293 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.64516923908614 46.81540362755072 10.91335994364874 0.8005040927810594 0.5993272874154602 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.5262885336333 47.14370240538835 10.523597088518427 0.9986386018691275 0.05216265768607631 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.6103190580531 47.482600001461826 10.133834233388114 0.858587727836118 -0.5126666691030464 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-32.868804176439845 47.717329959565255 9.744071378257802 0.4277791971915478 -0.9038832659420989 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.21420882993529 47.768401820725174 9.35430852312749 -0.14789522530086174 -0.989003034541961 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.52956297066073 47.6185202822157 8.964545667997177 -0.6734854598432598 -0.7392004703595046 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.708073049177514 47.31844218983544 8.574782812866864 -0.9710022573712368 -0.23907031639239984 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-33.68928726722632 46.9697879140046 8.185019957736552 -0.9396926207859078 0.34202014332567005 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.77002090193354 46.1052120859954 8.185019957736552 0.9396926207859068 -0.34202014332566755 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.7523895489494 45.7519477359912 8.574782812866864 0.9690782090928077 0.24675377334799276 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.936821606847914 45.45013424787104 8.964545667997177 0.6616914459286304 0.7497762535482666 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.339815873444515 45.30002979508385 9.35430852312749 -0.009965665065708007 0.9999503415269151 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.68407943865444 45.41283486783861 9.744071378257802 -0.5837382737489256 0.8119418869356478 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.900657663371106 45.70324192586034 10.133834233388114 -0.9447019816100319 0.32793012356609585 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.91059431666595 46.06537953739987 10.523597088518427 -0.9612630704347652 -0.2756325623331242 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.94897631397454 47.08508798486274 10.523597088518427 0.9887082334681266 0.14985335856209886 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.01167628061939 47.455255691397525 10.133834233388114 0.8842082890600436 -0.46709281899587674 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.28209949376999 47.715691292972636 9.744071378257802 0.4335029338090387 -0.9011521549544009 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.654363684770175 47.76442309857703 9.35430852312749 -0.18693738452460545 -0.9823718309617311 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.982711480858455 47.58237051940701 8.964545667997177 -0.7341837113383991 -0.6789508656783481 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.13564786856858 47.26343707210701 8.574782812866864 -0.9890776908552805 -0.1473951201783495 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.08139224784692 46.911802218447555 8.185019957736552 -0.8986516563191781 0.4386629692540752 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.83753499280652 46.65271848323409 7.795257102606239 -0.492222897918507 0.8704691946098443 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.48982630074021 46.57729031774177 7.405494247475927 0.08729158885867139 0.996182803763713 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.16053478711396 46.71204135388522 7.015731392345614 0.6361107782357536 0.7715977435246344 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.96545283323555 47.00958760904394 6.625968537215302 0.9612473680331003 0.2756873182600913 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.97317924306747 47.365299634816346 6.236205682084989 0.9483700183132415 -0.31716605802725056 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.180997094501556 47.65409451585359 5.846442826954677 0.6020069325897607 -0.7984908597559967 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.51582912043541 47.77442014528069 5.456679971824364 0.04395355603333084 -0.9990335754678259 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.85993466853934 47.683965104226594 5.066917116694052 -0.5295556908065376 -0.8482751737109923 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.09231213632017 47.41453708943272 4.677154261563739 -0.9168514704412514 -0.3992284823878657 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.13124808980476 47.0608780244927 4.287391406433427 -0.9817447262489054 0.1902032925121565 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.963051053246225 46.74734891965405 3.897628551303115 -0.7014163319846853 0.7127518005765772 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.64686599268864 46.58419944779406 3.5078656961728027 -0.1744412310553735 0.9846675870098949 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.29587361036597 46.6278960866943 15.200751350082177 0.41054607281573147 0.9118398555094993 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.024884889425515 46.87105299987316 14.810988494951864 0.8621939410498342 0.5065783335447338 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-36.944383796022564 47.22613009750767 14.421225639821552 0.996362430054749 -0.085216829179452 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.08401265996719 47.562379932685545 14.03146278469124 0.7636476568137006 -0.6456332211425841 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.39235696424987 47.75598768387348 13.641699929560927 0.24974048300923357 -0.968312806455806 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.75587733721447 47.73566258256263 13.251937074430614 -0.35612680526510104 -0.9344376376043921 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.04071732632615 47.50888879239614 12.862174219300302 -0.8308601204512355 -0.5564813206602381 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.14199238227724 47.159169570239676 12.47241136416999 -0.9996518803697019 0.026384049600540194 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-38.02241073071866 46.81527947164109 12.082648509039677 -0.8003491277720803 0.599534213931511 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.72600505002647 46.60384663654441 11.692885653909364 -0.30633965995176915 0.9519222724259786 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.361918639667124 46.60272543394859 11.303122798779052 0.3004710239804828 0.9537909434190098 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-37.06421637999215 46.81232871609855 10.91335994364874 0.796641456772106 0.6044521398357536 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.75704245664751 46.32531952294037 10.91335994364874 -0.705343303737373 -0.7088658715672832 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.64008957798307 46.415954490773025 11.07747061949308 -0.5104218392966341 -0.859924151288378 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.504512535096865 46.47521272787268 11.241581295337422 -0.28446010115296166 -0.9586878797878082 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.3585561721453 46.49949056418232 11.405691971181763 -0.04119949623368355 -0.9991509403038598 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.21109653068048 46.48731159209952 11.569802647026105 0.2045665728743503 -0.9788526534992076 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.07110107110244 46.439416451224275 11.733913322870446 0.4378923388377518 -0.8990274187071272 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.947083334658664 46.35871778785685 11.898023998714788 0.6445885662440418 -0.7645296464280815 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.84658520962051 46.25012312829321 12.062134674559129 0.8120854413076343 -0.5835385471553546 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.77571828657374 46.120236437520795 12.22624535040347 0.9301969797189148 -0.3670607292013217 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.73879219437532 45.976956512420024 12.390356026247812 0.99174046671628 -0.12826085403338128 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.73805251877487 45.8289966323784 12.554466702092153 0.9929732593836988 0.11833894603599832 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.77354424165075 45.68535467879509 12.718577377936494 0.9338203879238984 0.35774220200817414 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.84310900552795 45.55476594708888 12.882688053780836 0.8178791147952346 0.5753900881851903 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.94251636973056 45.4451719273423 13.046798729625177 0.6522001744575405 0.7580467877628342 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.06572107609099 45.36323735861475 13.210909405469518 0.4468589971901725 0.8946044023087474 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.20523067912101 45.313944926291605 13.37502008131386 0.21434299214013125 0.9767584561806534 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.35256118395826 45.300292250131655 13.539130757158201 -0.031207849255282 0.999512916447235 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.498752983386 45.323109590073166 13.703241433002542 -0.27486084830151464 0.9614840165447212 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.63491571825813 45.38100935565187 13.867352108846884 -0.5017987397550621 0.864984407246876 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.75276892674253 45.47047048951378 14.031462784691225 -0.6982207538957421 0.7158825174770366 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.921937299132715 45.781099117098776 14.421225639821538 -0.980168041212704 0.19816813816870005 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.85308406024647 46.200635900381 14.81098849495185 -0.865412643068972 -0.5010598339683336 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.43753651542219 47.76580055220593 3.5078656961728027 0.17444123105537246 -0.9846675870098931 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.1213514548646 47.60265108034594 3.897628551303115 0.7014163319846834 -0.7127518005765763 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+36.95315441830607 47.28912197550729 4.287391406433427 0.9817447262489034 -0.1902032925121567 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+36.99209037179067 46.93546291056728 4.677154261563739 0.9168514704412498 0.3992284823878644 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.22446783957149 46.6660348957734 5.066917116694052 0.5295556908065371 0.8482751737109903 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.568573387675414 46.5755798547193 5.456679971824364 -0.04395355603333028 0.999033575467824 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.90340541360927 46.6959054841464 5.846442826954677 -0.6020069325897592 0.7984908597559954 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+38.11122326504336 46.98470036518365 6.236205682084989 -0.9483700183132397 0.3171660580272504 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+38.118949674875275 47.340412390956054 6.625968537215302 -0.9612473680330987 -0.27568731826009046 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.92386772099687 47.637958646114775 7.015731392345614 -0.6361107782357527 -0.7715977435246328 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.594576207370615 47.772709682258224 7.405494247475927 -0.08729158885867146 -0.9961828037637112 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.24686751530431 47.697281516765905 7.795257102606239 0.49222289791850593 -0.8704691946098426 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.003010260263906 47.43819778155244 8.185019957736552 0.8986516563191763 -0.43866296925407444 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+36.948754639542244 47.086562927892984 8.574782812866864 0.9890776908552786 0.1473951201783492 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.93682160684791 45.45013424787104 0.7795257102606237 0.6616914459286313 0.7497762535482666 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.339815873444515 45.30002979508385 1.169288565390936 -0.009965665065707341 0.9999503415269158 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.7397384608735 45.45813624568086 1.5590514205212482 -0.6765033107806737 0.7364395905318945 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.91811914993644 45.763567763802214 1.9488142756515605 -0.9738044592189132 0.22738706032964393 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.929163234324754 45.974739875057125 2.182671988729748 -0.992211266532772 -0.12456645842854108 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.86626172833062 46.17662853971045 2.416529701807935 -0.8873754232092139 -0.46104756618408205 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.737227633669775 46.34415714857141 2.650387414886122 -0.6723185987744813 -0.7402619142856905 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.55808828684303 46.45651695806893 2.8842451279643093 -0.3737530207299 -0.9275282634482207 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.351094602228244 46.49975174616172 3.1181028410424965 -0.02876354637192924 -0.9995862436028753 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.14195728400467 46.468491315933036 3.3519605541206836 0.31979865066736757 -0.9474855265550646 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.95665329727484 46.36661852823257 3.5858182671988708 0.6286386285504137 -0.7776975470542851 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.81819926689334 46.20678701118118 3.819675980277058 0.8593953458529224 -0.5113116853019622 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.74379258042387 46.00884945188414 4.053533693355245 0.9834064899686994 -0.18141575314023703 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.742675299083594 45.79739169238064 4.287391406433432 0.9852686255358237 0.17101384603226044 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.814986200488256 45.59867891999326 4.521249119511619 0.8647504565280566 0.5022018000112252 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.951743541072055 45.43739326604884 4.7551068325898065 0.6368215555550584 0.771011223251927 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.13596067926362 45.333568036126906 4.988964545667994 0.32979299190245254 0.9440532731218222 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.344755987763044 45.300099371372205 5.222822258746181 -0.01819918892992256 0.999834381046326 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.55219498252637 45.34114441764348 5.456679971824368 -0.36393084686880894 0.9314259705942005 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.73251164736078 45.451604966052535 5.690537684902555 -0.664458621592819 0.7473250565791086 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.86330883311279 45.617760701948676 5.924395397980742 -0.8824539311794976 0.47039883008554284 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.92834020957863 45.81897340643522 6.158253111058929 -0.990839558622562 0.13504432260796198 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.91952822363974 46.03025043139451 6.3921108241371165 -0.976152915391083 -0.21708405232417666 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.837967412861985 46.22534903855793 6.625968537215304 -0.8402182307614914 -0.5422483975965497 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.69378845288616 46.380036012386114 6.859826250293491 -0.5999199641351146 -0.8000600206435262 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.50489982529568 46.47509766995014 7.093683963371678 -0.28510558481765735 -0.9584961165835668 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.294763403508775 46.498726394215865 7.327541676449865 0.06512178482719655 -0.9978773236931067 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.08948025137141 46.447987259217506 7.561399389528052 0.40726037172279894 -0.9133120986958425 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.91454860767 46.32918257747576 7.795257102606239 0.6988131112251439 -0.7153042957929383 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.544759561489855 46.74581742252423 7.795257102606239 -0.6988131112251434 0.715304295792941 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.24776805653827 46.58759588025404 7.405494247475927 -0.2038272696391602 0.9790068662432583 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.87914405106533 46.6278960866943 7.015731392345614 0.4105460728157317 0.9118398555094966 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.62760561747006 46.84014276312264 6.653808741153181 0.8297767954745174 0.5580953947955856 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.52586987999906 47.153144480293136 6.291886089960748 0.9993363579261861 0.036425866178107114 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.604548058136224 47.47272229478509 5.929963438768315 0.8682060610309166 -0.49620382464183016 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.839966710872325 47.702718584264645 5.568040787575882 0.4758416398040792 -0.8795309737744117 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.16129082753512 47.77392987045802 5.206118136383449 -0.0596985546339171 -0.9982164507633708 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.47183734172982 47.66492942205542 4.844195485191015 -0.5772760782917375 -0.8165490367590373 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.678166054935396 47.40851433408794 4.482272833998582 -0.9211572669677022 -0.3891905568132321 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.71819481507068 47.08183722501466 4.120350182806149 -0.9878718671931873 0.15527129164222886 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.57987938681947 46.78319182066675 3.7584275316137163 -0.7573461534411665 0.6530136322220765 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.30483743608223 46.60243740007048 3.3965048804212836 -0.29894290221243003 0.9542709998825333 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.975826209531455 46.593961078108975 3.034582229228851 0.24940914203886605 0.9683982031516979 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.6918417445378 46.760313291417695 2.672659578036418 0.7227165836949602 0.6911445143038365 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.53833199679544 47.05144039867245 2.3107369268439855 0.9785661632655556 0.20593266887924955 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.56148644404221 47.37974529781825 1.9488142756515525 0.9399754178542727 -0.34124216303042937 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.77482234552896 47.66187270809475 1.5590514205212402 0.584415582043022 -0.8114545134912471 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.18546247597383 47.77199338871442 1.169288565390928 -0.09998463536509211 -0.9949889811907016 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.57633060772338 46.9332479234133 14.810988494951864 0.91523514505232 0.40292012764450075 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.55561662387539 47.362790303778056 14.421225639821552 0.9497584514656372 -0.3129838396300945 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.76042138428168 47.65117042203763 14.03146278469124 0.6084171841218251 -0.7936173700627217 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.087343110250615 47.773787283635606 13.641699929560927 0.06354764084026004 -0.9979788060593466 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.4271769446983 47.69362697785259 13.251937074430614 -0.5028420832392232 -0.8643782964209823 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.66483937764917 47.43783550492489 12.862174219300302 -0.8989461381573383 -0.43805917487482104 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.71984687803348 47.093035730330826 12.47241136416999 -0.9906253054645162 0.13660711611528586 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.57357135300845 46.77599286187721 12.082648509039677 -0.7468327637561278 0.6650118968713152 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.27554848483114 46.594072330594955 11.692885653909364 -0.25012798346061293 0.9682127823417372 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.92670264961194 46.6088808723484 11.303122798779052 0.3312817419047255 0.9435318794193293 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.64516923908614 46.81540362755072 10.91335994364874 0.8005040927810596 0.5993272874154602 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.5262885336333 47.14370240538835 10.523597088518427 0.9986386018691277 0.0521626576860762 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.6103190580531 47.482600001461826 10.133834233388114 0.8585877278361181 -0.5126666691030466 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+32.868804176439845 47.717329959565255 9.744071378257802 0.4277791971915477 -0.9038832659420991 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.21420882993529 47.768401820725174 9.35430852312749 -0.14789522530086197 -0.9890030345419611 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.52956297066073 47.6185202822157 8.964545667997177 -0.67348545984326 -0.7392004703595044 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.708073049177514 47.31844218983544 8.574782812866864 -0.9710022573712369 -0.23907031639239962 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+33.68928726722632 46.9697879140046 8.185019957736552 -0.9396926207859078 0.3420201433256703 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.77002090193354 46.1052120859954 8.185019957736552 0.9396926207859071 -0.3420201433256677 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.7523895489494 45.7519477359912 8.574782812866864 0.9690782090928081 0.2467537733479928 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.936821606847914 45.45013424787104 8.964545667997177 0.6616914459286306 0.7497762535482668 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.339815873444515 45.30002979508385 9.35430852312749 -0.009965665065707952 0.9999503415269155 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.68407943865444 45.41283486783861 9.744071378257802 -0.5837382737489258 0.8119418869356483 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.900657663371106 45.70324192586034 10.133834233388114 -0.9447019816100324 0.3279301235660961 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.91059431666595 46.06537953739987 10.523597088518427 -0.9612630704347658 -0.27563256233312433 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+36.94897631397454 47.08508798486274 10.523597088518427 0.9887082334681236 0.14985335856209914 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.01167628061939 47.455255691397525 10.133834233388114 0.8842082890600413 -0.4670928189958748 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.28209949376999 47.715691292972636 9.744071378257802 0.43350293380903804 -0.9011521549543982 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.654363684770175 47.76442309857703 9.35430852312749 -0.1869373845246045 -0.9823718309617285 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.98271148085845 47.58237051940701 8.964545667997177 -0.734183711338397 -0.6789508656783466 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+38.13564786856858 47.26343707210701 8.574782812866864 -0.989077690855278 -0.14739512017834944 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+38.08139224784692 46.911802218447555 8.185019957736552 -0.898651656319176 0.43866296925407383 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.83753499280652 46.65271848323409 7.795257102606239 -0.49222289791850593 0.870469194609842 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.48982630074021 46.57729031774177 7.405494247475927 0.08729158885867111 0.9961828037637106 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.16053478711396 46.71204135388522 7.015731392345614 0.636110778235752 0.7715977435246325 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+36.96545283323555 47.00958760904394 6.625968537215302 0.9612473680330981 0.2756873182600905 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+36.97317924306747 47.365299634816346 6.236205682084989 0.9483700183132393 -0.31716605802725 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.180997094501556 47.65409451585359 5.846442826954677 0.6020069325897591 -0.798490859755995 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.51582912043541 47.77442014528069 5.456679971824364 0.0439535560333304 -0.9990335754678237 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.85993466853934 47.683965104226594 5.066917116694052 -0.5295556908065369 -0.8482751737109901 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+38.09231213632016 47.41453708943271 4.677154261563739 -0.9168514704412496 -0.39922848238786435 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+38.13124808980476 47.0608780244927 4.287391406433427 -0.9817447262489032 0.19020329251215662 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.963051053246225 46.74734891965405 3.897628551303115 -0.7014163319846833 0.7127518005765761 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.64686599268864 46.58419944779406 3.5078656961728027 -0.17444123105537251 0.9846675870098929 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.29587361036597 46.6278960866943 15.200751350082177 0.4105460728157296 0.9118398555094968 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.024884889425515 46.87105299987316 14.810988494951864 0.8621939410498312 0.5065783335447328 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+36.944383796022564 47.22613009750767 14.421225639821552 0.996362430054746 -0.085216829179451 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.08401265996719 47.562379932685545 14.03146278469124 0.7636476568136988 -0.6456332211425816 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.39235696424987 47.75598768387348 13.641699929560927 0.24974048300923363 -0.9683128064558029 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.75587733721447 47.73566258256263 13.251937074430614 -0.3561268052650992 -0.9344376376043897 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+38.04071732632615 47.50888879239614 12.862174219300302 -0.8308601204512327 -0.5564813206602373 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+38.14199238227723 47.159169570239676 12.47241136416999 -0.999651880369699 0.026384049600539305 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+38.02241073071866 46.81527947164109 12.082648509039677 -0.8003491277720786 0.5995342139315085 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.72600505002647 46.60384663654441 11.692885653909364 -0.30633965995176893 0.9519222724259756 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.361918639667124 46.60272543394859 11.303122798779052 0.3004710239804812 0.9537909434190073 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+37.06421637999215 46.81232871609855 10.91335994364874 0.7966414567721032 0.6044521398357524 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.75704245664751 46.32531952294037 10.91335994364874 -0.7053433037373734 -0.7088658715672835 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.64008957798307 46.415954490773025 11.07747061949308 -0.5104218392966344 -0.8599241512883784 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.504512535096865 46.47521272787269 11.241581295337422 -0.2844601011529619 -0.9586878797878087 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.3585561721453 46.49949056418232 11.405691971181763 -0.04119949623368363 -0.9991509403038602 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.21109653068048 46.48731159209952 11.569802647026105 0.2045665728743503 -0.978852653499208 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.07110107110244 46.439416451224275 11.733913322870446 0.4378923388377519 -0.8990274187071277 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.947083334658664 46.35871778785685 11.898023998714788 0.644588566244042 -0.764529646428082 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.84658520962051 46.25012312829321 12.062134674559129 0.8120854413076346 -0.5835385471553549 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.77571828657374 46.120236437520795 12.22624535040347 0.9301969797189151 -0.3670607292013219 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.73879219437532 45.976956512420024 12.390356026247812 0.9917404667162804 -0.12826085403338133 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.73805251877487 45.8289966323784 12.554466702092153 0.9929732593836992 0.11833894603599834 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.77354424165075 45.68535467879509 12.718577377936494 0.9338203879238988 0.3577422020081743 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.84310900552795 45.55476594708888 12.882688053780836 0.8178791147952348 0.5753900881851906 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.94251636973056 45.4451719273423 13.046798729625177 0.6522001744575406 0.7580467877628345 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.06572107609099 45.36323735861475 13.210909405469518 0.4468589971901726 0.8946044023087477 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.20523067912101 45.313944926291605 13.37502008131386 0.21434299214013128 0.9767584561806537 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.35256118395826 45.300292250131655 13.539130757158201 -0.031207849255282055 0.9995129164472353 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.498752983386 45.323109590073166 13.703241433002542 -0.27486084830151475 0.9614840165447214 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.63491571825813 45.38100935565187 13.867352108846884 -0.5017987397550623 0.8649844072468762 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.75276892674253 45.47047048951378 14.031462784691225 -0.6982207538957423 0.7158825174770367 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.921937299132715 45.781099117098776 14.421225639821538 -0.9801680412127042 0.1981681381687001 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.85308406024647 46.200635900381 14.81098849495185 -0.8654126430689721 -0.5010598339683336 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
 37.37394482047181 50.30092514492573 3.50786569617281 0.2804273893060022 -0.9598752415428891 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
 37.076229072199034 50.10298138279021 3.897628551303122 0.7766203030939662 -0.629968971317029 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
 36.94395467576774 49.77083701088739 4.287391406433434 0.9970776304794546 -0.0763950181456613 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
@@ -403,40 +403,40 @@ E = 0.000000 0.000000 0.000000
 37.828947350072866 50.252045231852776 7.0157313923456215 -0.47791016002908715 -0.8784087197546327 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
 37.459823435277116 50.31931800828624 7.405494247475934 0.13729636463049882 -0.9905300138104094 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
 37.122913387320324 50.15418257747576 7.7952571026062465 0.698813111225145 -0.7153042957929401 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.75312434114018 50.57081742252423 7.795257102606234 -0.6988131112251464 0.715304295792942 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.398522684123044 50.40349711293881 7.4054942474759216 -0.10781034952992674 0.9941714784353052 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.016296705570355 50.4909140591134 7.015731392345609 0.5292329480578951 0.8484765681443152 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.76967645678395 50.795736751916266 6.6259685372152965 0.9402666960352367 0.34043874680621344 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.763981403525705 51.18779030377805 6.236205682084984 0.9497584514656388 -0.3129838396300952 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.968786163931995 51.476170422037626 5.8464428269546715 0.6084171841218261 -0.7936173700627231 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.29964915525608 51.599025230862104 5.456679971824359 0.05697886524835116 -0.9983753847701853 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.64234130307062 51.51461128115311 5.0669171166940465 -0.5141747144425606 -0.8576854685885242 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.878287675340694 51.252136649061136 4.677154261563734 -0.9074186682260041 -0.4202277484352386 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.92584845267084 50.902420198863304 4.2873914064334215 -0.9866866304429156 0.162633001894481 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.768567127447994 50.58646734191252 3.8976285513031095 -0.7245510884048363 0.6892210968124612 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.460864621095645 50.413600946497716 3.5078656961727974 -0.2117135778175946 0.9773317558371252 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.10920909756326 50.443634525178666 3.1181028410424854 0.3743789614030467 0.9272757913688789 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.83527690709254 50.666176157470545 2.7283399859121733 0.83093261218758 0.5563730708824154 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.73385134446976 51.00422419891713 2.3385771307818612 0.9999752165588767 -0.007040331528562482 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.84002667512032 51.34081062502559 1.948814275651549 0.8230163321412816 -0.5680177083759942 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.11706516607902 51.559473144919934 1.5590514205212367 0.36128551387677393 -0.9324552415332328 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.46910871132861 51.58455232607329 1.1692885653909244 -0.22545372820586884 -0.9742538767888369 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.77434670120813 51.407370519407 0.7795257102606121 -0.7341837113383984 -0.6789508656783486 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.92728308891826 51.088437072107006 0.3897628551302999 -0.9890776908552803 -0.14739512017835033 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.89765204687664 50.794787914004594 -1.2323475573339238e-14 -0.9396926207859101 0.34202014332566955 -0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.54700693371559 51.56085502162087 13.251937074430614 -0.3552840988508364 -0.9347583693681246 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.793152391868695 51.38604259863979 12.862174219300302 -0.7655265291060074 -0.643404331066333 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.92792987357832 51.08398233777884 12.47241136416999 -0.990155665288715 -0.13997056296474797 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.84943495753469 50.693147911536414 12.043672223526645 -0.859330805215999 0.5114201474392939 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.54334198024354 50.4377656689392 11.6149330828833 -0.3491758430640869 0.9370572184346538 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.144768034699574 50.430567716837785 11.186193942239957 0.3151140661758637 0.9490538052703439 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.829653625457716 50.67473141125016 10.757454801596612 0.8403047482456261 0.5421143145830603 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.73709813112606 51.06247679297632 10.328715660953268 0.9945639054650419 -0.10412798829387421 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-34.90795786093933 51.422643356262085 9.899976520309924 0.7097976891095988 -0.7044055937701511 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.26681105838897 51.59624457532782 9.47123737966658 0.11170902669353283 -0.993740958879722 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.65525095021169 51.506648531767304 9.042498239023235 -0.5356907930109935 -0.8444142196121869 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.9018104565328 51.19340515925381 8.61375909837989 -0.9466233035461844 -0.32234193208968975 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
-35.89765204687664 50.794787914004594 8.185019957736547 -0.9396926207859109 0.34202014332566993 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.75312434114018 50.57081742252423 7.795257102606234 -0.6988131112251448 0.7153042957929412 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.398522684123044 50.40349711293881 7.4054942474759216 -0.10781034952992585 0.9941714784353036 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.016296705570355 50.49091405911341 7.015731392345609 0.5292329480578949 0.8484765681443134 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.76967645678395 50.795736751916266 6.6259685372152965 0.9402666960352355 0.3404387468062122 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.763981403525705 51.18779030377805 6.236205682084984 0.9497584514656371 -0.31298383963009535 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.968786163931995 51.476170422037626 5.8464428269546715 0.6084171841218247 -0.7936173700627223 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.29964915525608 51.599025230862104 5.456679971824359 0.056978865248350496 -0.9983753847701837 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.64234130307062 51.51461128115311 5.0669171166940465 -0.5141747144425604 -0.8576854685885227 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.878287675340694 51.252136649061136 4.677154261563734 -0.907418668226003 -0.42022774843523736 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.925848452670834 50.902420198863304 4.2873914064334215 -0.986686630442914 0.16263300189448138 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.76856712744799 50.58646734191252 3.8976285513031095 -0.7245510884048348 0.6892210968124607 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.460864621095645 50.413600946497716 3.5078656961727974 -0.21171357781759376 0.977331755837124 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.10920909756326 50.443634525178666 3.1181028410424854 0.3743789614030468 0.9272757913688774 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.83527690709254 50.666176157470545 2.7283399859121733 0.8309326121875792 0.5563730708824141 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.73385134446976 51.00422419891713 2.3385771307818612 0.9999752165588752 -0.007040331528563093 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.84002667512032 51.34081062502559 1.948814275651549 0.82301633214128 -0.5680177083759939 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.11706516607902 51.559473144919934 1.5590514205212367 0.3612855138767728 -0.9324552415332317 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.46910871132861 51.58455232607329 1.1692885653909244 -0.22545372820586912 -0.9742538767888353 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.77434670120813 51.407370519407 0.7795257102606121 -0.7341837113383978 -0.6789508656783472 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.92728308891826 51.088437072107006 0.3897628551302999 -0.9890776908552789 -0.14739512017834944 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.89765204687664 50.794787914004594 -1.2323475573339238e-14 -0.9396926207859084 0.3420201433256697 -0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.54700693371559 51.56085502162087 13.251937074430614 -0.35528409885083667 -0.9347583693681225 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.793152391868695 51.38604259863979 12.862174219300302 -0.7655265291060066 -0.6434043310663311 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.927929873578314 51.08398233777884 12.47241136416999 -0.9901556652887133 -0.1399705629647468 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.84943495753469 50.693147911536414 12.043672223526645 -0.859330805215997 0.5114201474392936 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.54334198024354 50.4377656689392 11.6149330828833 -0.34917584306408544 0.9370572184346524 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.144768034699574 50.430567716837785 11.186193942239957 0.3151140661758638 0.9490538052703419 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.829653625457716 50.67473141125016 10.757454801596612 0.8403047482456248 0.5421143145830587 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.73709813112607 51.06247679297632 10.328715660953268 0.9945639054650401 -0.10412798829387454 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+34.907957860939334 51.422643356262085 9.899976520309924 0.7097976891095972 -0.7044055937701503 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.26681105838897 51.59624457532782 9.47123737966658 0.11170902669353194 -0.9937409588797204 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.65525095021169 51.506648531767304 9.042498239023235 -0.5356907930109932 -0.8444142196121851 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.9018104565328 51.19340515925381 8.61375909837989 -0.946623303546183 -0.3223419320896886 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
+35.89765204687664 50.794787914004594 8.185019957736547 -0.9396926207859091 0.34202014332567 0.0 -0.0 -0.0 -1.0 0.0 0.0 0.0 0.0 0.0 0.0
 36.978385681583866 49.93021208599539 8.185019957736559 0.9396926207859088 -0.342020143325669 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
 36.96288285382915 49.56882640697197 8.574782812866871 0.9655306670437738 0.26028932171336966 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
 37.15792999438412 49.26420112956883 8.964545667997184 0.6404520994521545 0.767998117385276 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
diff --git a/mrdna/readers/test/test_insert.json.top b/mrdna/readers/test/test_insert.json.top
index eab249d4e5725f616666ba17f80633e79bd7a0bc..6b91c087e875b379cf29e41e0948857c9be6b496 100644
--- a/mrdna/readers/test/test_insert.json.top
+++ b/mrdna/readers/test/test_insert.json.top
@@ -1,456 +1,456 @@
 455 14
-1 C -1 1
-1 C 0 2
-1 G 1 -1
+1 T -1 1
+1 G 0 2
+1 C 1 -1
 2 G -1 4
-2 T 3 5
+2 A 3 5
 2 C 4 -1
 3 G -1 7
 3 G 6 8
 3 G 7 -1
 4 C -1 10
-4 A 9 11
-4 A 10 12
-4 A 11 13
-4 G 12 14
-4 G 13 15
-4 G 14 16
-4 A 15 17
-4 C 16 18
-4 T 17 19
+4 G 9 11
+4 C 10 12
+4 T 11 13
+4 C 12 14
+4 T 13 15
+4 T 14 16
+4 T 15 17
+4 T 16 18
+4 A 17 19
 4 T 18 20
 4 T 19 21
-4 T 20 22
-4 G 21 23
+4 C 20 22
+4 A 21 23
 4 A 22 24
-4 C 23 25
+4 G 23 25
 4 T 24 26
-4 G 25 27
-4 T 26 28
+4 A 25 27
+4 A 26 28
 4 G 27 29
 4 C 28 30
 4 C 29 31
 4 C 30 32
 4 C 31 33
-4 C 32 34
-4 A 33 35
-4 A 34 36
+4 T 32 34
+4 C 33 35
+4 C 34 36
 4 A 35 37
-4 A 36 38
-4 G 37 39
-4 G 38 40
+4 T 36 38
+4 C 37 39
+4 A 38 40
 4 G 39 41
 4 A 40 42
-4 C 41 -1
+4 G 41 -1
 5 T -1 44
-5 T 43 45
+5 G 43 45
 5 C 44 46
-5 C 45 47
-5 T 46 -1
-6 G -1 49
+5 A 45 47
+5 A 46 -1
+6 C -1 49
 6 C 48 50
-6 T 49 51
-6 T 50 -1
-7 G -1 53
-7 A 52 54
-7 C 53 55
-7 A 54 -1
+6 G 49 51
+6 A 50 -1
+7 C -1 53
+7 G 52 54
+7 G 53 55
+7 G 54 -1
 8 T -1 57
 8 A 56 58
-8 G 57 59
-8 T 58 60
-8 G 59 61
-8 C 60 62
-8 G 61 63
-8 G 62 64
+8 T 57 59
+8 A 58 60
+8 T 59 61
+8 A 60 62
+8 A 61 63
+8 C 62 64
 8 C 63 65
 8 A 64 66
 8 G 65 67
 8 G 66 68
-8 C 67 69
-8 G 68 70
+8 T 67 69
+8 T 68 70
 8 C 69 71
-8 T 70 72
-8 T 71 73
-8 G 72 74
+8 C 70 72
+8 C 71 73
+8 C 72 74
 8 G 73 75
 8 C 74 76
-8 G 75 77
+8 A 75 77
 8 T 76 78
-8 G 77 79
-8 A 78 80
-8 A 79 81
-8 C 80 82
-8 C 81 83
-8 T 82 84
-8 C 83 85
-8 G 84 86
+8 C 77 79
+8 T 78 80
+8 T 79 81
+8 T 80 82
+8 G 81 83
+8 G 82 84
+8 T 83 85
+8 T 84 86
 8 C 85 87
-8 A 86 88
-8 T 87 89
-8 G 88 90
-8 G 89 91
-8 A 90 92
-8 G 91 93
+8 G 86 88
+8 C 87 89
+8 A 88 90
+8 C 89 91
+8 G 90 92
+8 T 91 93
 8 T 92 94
-8 C 93 95
-8 T 94 96
-8 C 95 97
-8 G 96 98
-8 G 97 99
-8 C 98 100
-8 A 99 101
-8 G 100 102
-8 C 101 103
-8 G 102 104
-8 T 103 105
-8 G 104 106
-8 T 105 107
-8 C 106 108
-8 C 107 109
-8 G 108 110
-8 C 109 111
-8 G 110 112
-8 T 111 113
+8 T 93 95
+8 C 94 96
+8 T 95 97
+8 A 96 98
+8 C 97 99
+8 G 98 100
+8 C 99 101
+8 C 100 102
+8 A 101 103
+8 A 102 104
+8 C 103 105
+8 C 104 106
+8 A 105 107
+8 A 106 108
+8 T 107 109
+8 C 108 110
+8 G 109 111
+8 C 110 112
+8 G 111 113
 8 C 112 114
-8 C 113 115
-8 C 114 116
-8 T 115 117
+8 T 113 115
+8 G 114 116
+8 A 115 117
 8 T 116 118
-8 T 117 119
-8 T 118 120
-8 G 119 121
+8 G 117 119
+8 G 118 120
+8 A 119 121
 8 G 120 122
 8 G 121 123
 8 G 122 124
 8 G 123 125
 8 C 124 126
-8 A 125 127
+8 T 125 127
 8 C 126 128
-8 C 127 129
-8 C 128 130
-8 C 129 131
-8 G 130 132
-8 C 131 133
+8 A 127 129
+8 G 128 130
+8 A 129 131
+8 T 130 132
+8 G 131 133
 8 C 132 134
-8 C 133 135
-8 A 134 136
-8 C 135 137
-8 G 136 138
-8 C 137 139
+8 A 133 135
+8 G 134 136
+8 G 135 137
+8 C 136 138
+8 A 137 139
 8 T 138 140
-8 G 139 141
+8 A 139 141
 8 A 140 142
 8 G 141 143
-8 G 142 144
-8 C 143 145
+8 A 142 144
+8 G 143 145
 8 G 144 146
-8 A 145 147
+8 C 145 147
 8 A 146 148
-8 C 147 149
-8 C 148 150
-8 A 149 151
+8 G 147 149
+8 G 148 150
+8 C 149 151
 8 A 150 152
 8 A 151 153
-8 G 152 154
-8 T 153 155
-8 A 154 156
-8 T 155 157
+8 A 152 154
+8 C 153 155
+8 T 154 156
+8 G 155 157
 8 G 156 158
 8 T 157 159
-8 G 158 160
+8 A 158 160
 8 A 159 161
-8 G 160 162
+8 T 160 162
 8 C 161 163
-8 G 162 164
-8 T 163 165
-8 T 164 166
-8 T 165 167
-8 A 166 168
-8 C 167 169
+8 A 162 164
+8 G 163 165
+8 G 164 166
+8 G 165 167
+8 C 166 168
+8 T 167 169
 8 A 168 170
-8 C 169 171
+8 T 169 171
 8 T 170 172
-8 T 171 173
+8 G 171 173
 8 A 172 174
 8 T 173 175
-8 C 174 176
-8 A 175 177
-8 C 176 178
-8 T 177 179
-8 C 178 180
-8 T 179 181
-8 A 180 182
-8 A 181 183
+8 G 174 176
+8 G 175 177
+8 G 176 178
+8 G 177 179
+8 G 178 180
+8 A 179 181
+8 T 180 182
+8 T 181 183
 8 T 182 184
-8 G 183 185
-8 T 184 186
-8 G 185 187
-8 A 186 188
-8 T 187 189
-8 A 188 190
-8 T 189 191
-8 A 190 192
-8 T 191 193
+8 T 183 185
+8 G 184 186
+8 C 185 187
+8 C 186 188
+8 A 187 189
+8 G 188 190
+8 G 189 191
+8 C 190 192
+8 C 191 193
 8 G 192 194
-8 C 193 195
+8 T 193 195
 8 C 194 196
-8 C 195 197
+8 G 195 197
 8 G 196 198
-8 T 197 199
+8 C 197 199
 8 C 198 200
-8 C 199 201
-8 A 200 202
-8 G 201 203
+8 G 199 201
+8 C 200 202
+8 T 201 203
 8 A 202 204
-8 C 203 205
-8 G 204 206
-8 A 205 207
-8 T 206 208
-8 C 207 209
+8 G 203 205
+8 T 204 206
+8 G 205 207
+8 G 206 208
+8 T 207 209
 8 G 208 210
 8 T 209 211
-8 G 210 212
-8 C 211 213
-8 C 212 214
+8 T 210 212
+8 G 211 213
+8 T 212 214
 8 A 213 215
-8 G 214 216
+8 C 214 216
 8 T 215 217
-8 C 216 218
-8 A 217 219
+8 T 216 218
+8 G 217 219
 8 A 218 220
 8 A 219 221
-8 A 220 222
-8 G 221 223
-8 T 222 224
-8 C 223 225
-8 C 224 226
-8 C 225 227
-8 T 226 228
-8 T 227 229
-8 T 228 230
-8 T 229 231
-8 A 230 232
-8 T 231 233
-8 C 232 234
-8 C 233 235
-8 A 234 236
-8 C 235 237
+8 T 220 222
+8 A 221 223
+8 A 222 224
+8 A 223 225
+8 A 224 226
+8 G 225 227
+8 A 226 228
+8 G 227 229
+8 G 228 230
+8 A 229 231
+8 T 230 232
+8 A 231 233
+8 A 232 234
+8 G 233 235
+8 C 234 236
+8 T 235 237
 8 C 236 238
-8 A 237 239
-8 T 238 240
-8 C 239 241
-8 C 240 242
-8 G 241 243
-8 C 242 244
-8 C 243 245
-8 A 244 246
-8 T 245 247
-8 A 246 248
-8 C 247 249
-8 C 248 250
-8 C 249 251
-8 C 250 252
-8 A 251 253
-8 A 252 254
-8 A 253 255
+8 T 237 239
+8 A 238 240
+8 A 239 241
+8 A 240 242
+8 T 241 243
+8 T 242 244
+8 G 243 245
+8 G 244 246
+8 G 245 247
+8 G 246 248
+8 T 247 249
+8 A 248 250
+8 G 249 251
+8 A 250 252
+8 T 251 253
+8 T 252 254
+8 T 253 255
 8 C 254 256
-8 T 255 257
+8 G 255 257
 8 A 256 258
-8 G 257 259
-8 G 258 260
-8 T 259 261
-8 A 260 262
+8 T 257 259
+8 A 258 260
+8 G 259 261
+8 G 260 262
 8 T 261 263
-8 T 262 -1
+8 C 262 -1
 9 G -1 265
-9 G 264 266
+9 C 264 266
 9 A 265 267
 9 C 266 268
-9 G 267 269
+9 C 267 269
 9 G 268 270
-9 G 269 271
+9 A 269 271
 9 C 270 272
-9 A 271 273
-9 T 272 274
-9 A 273 275
-9 T 274 276
-9 A 275 277
-9 T 276 278
-9 C 277 279
-9 A 278 280
-9 C 279 281
+9 G 271 273
+9 G 272 274
+9 C 273 275
+9 C 274 276
+9 T 275 277
+9 G 276 278
+9 G 277 279
+9 C 278 280
+9 A 279 281
 9 A 280 282
-9 T 281 283
-9 T 282 284
-9 A 283 285
-9 G 284 286
-9 A 285 287
-9 G 286 288
-9 T 287 289
-9 G 288 290
+9 A 281 283
+9 A 282 284
+9 T 283 285
+9 C 284 286
+9 C 285 287
+9 C 286 288
+9 C 287 289
+9 C 288 290
 9 A 289 291
 9 T 290 292
-9 A 291 293
-9 G 292 294
+9 C 291 293
+9 T 292 294
 9 G 293 295
-9 G 294 296
-9 C 295 297
+9 C 294 296
+9 A 295 297
 9 A 296 298
 9 C 297 299
-9 G 298 300
-9 A 299 301
-9 T 300 302
-9 C 301 303
-9 G 302 304
+9 A 298 300
+9 C 299 301
+9 C 300 302
+9 A 301 303
+9 C 302 304
 9 T 303 305
-9 C 304 306
-9 T 305 307
-9 G 306 308
+9 A 304 306
+9 G 305 307
+9 C 306 308
 9 G 307 309
-9 A 308 310
+9 G 308 310
 9 T 309 311
-9 T 310 -1
-10 T -1 313
-10 G 312 314
-10 G 313 315
-10 C 314 316
+9 G 310 -1
+10 C -1 313
+10 C 312 314
+10 C 313 315
+10 T 314 316
 10 C 315 317
 10 T 316 318
-10 C 317 319
+10 T 317 319
 10 A 318 320
-10 G 319 321
-10 C 320 322
-10 G 321 323
-10 T 322 324
-10 G 323 325
+10 T 319 321
+10 G 320 322
+10 C 321 323
+10 C 322 324
+10 T 323 325
 10 G 324 326
-10 G 325 327
-10 C 326 328
-10 G 327 329
-10 G 328 330
+10 C 325 327
+10 A 326 328
+10 T 327 329
+10 C 328 330
 10 A 329 331
-10 G 330 332
+10 A 330 332
 10 T 331 -1
-11 G -1 334
-11 T 333 335
-11 A 334 336
-11 A 335 337
-11 C 336 338
-11 A 337 339
-11 C 338 340
+11 A -1 334
+11 G 333 335
+11 C 334 336
+11 C 335 337
+11 A 336 338
+11 T 337 339
+11 A 338 340
 11 T 339 341
 11 A 340 342
-11 A 341 343
+11 G 341 343
 11 A 342 344
-11 T 343 345
-11 A 344 346
-11 C 345 347
-11 C 346 348
+11 C 343 345
+11 C 344 346
+11 T 345 347
+11 A 346 348
 11 T 347 349
-11 A 348 350
+11 C 348 350
 11 G 349 351
-11 T 350 352
-11 T 351 353
-11 T 352 354
-11 G 353 355
-11 G 354 -1
-12 A -1 357
-12 A 356 358
+11 A 350 352
+11 A 351 353
+11 A 352 354
+11 T 353 355
+11 C 354 -1
+12 G -1 357
+12 G 356 358
 12 G 357 359
-12 C 358 360
-12 G 359 361
+12 A 358 360
+12 A 359 361
 12 C 360 362
 12 C 361 363
 12 T 362 364
 12 G 363 365
-12 C 364 366
-12 C 365 367
-12 G 366 368
-12 A 367 369
-12 C 368 370
+12 G 364 366
+12 T 365 367
+12 T 366 368
+12 C 367 369
+12 T 368 370
 12 G 369 371
-12 C 370 372
+12 A 370 372
 12 T 371 373
-12 C 372 374
+12 T 372 374
 12 A 373 375
 12 C 374 376
-12 A 375 377
-12 T 376 378
-12 A 377 379
-12 C 378 380
+12 C 375 377
+12 A 376 378
+12 G 377 379
+12 T 378 380
 12 T 379 381
 12 T 380 382
-12 T 381 383
-12 G 382 384
-12 G 383 385
+12 G 381 383
+12 C 382 384
+12 C 383 385
 12 T 384 386
-12 T 385 387
+12 G 385 387
 12 C 386 388
-12 A 387 389
-12 G 388 -1
-13 G -1 391
-13 G 390 392
-13 T 391 393
-13 A 392 394
-13 T 393 395
-13 G 394 396
-13 G 395 397
-13 G 396 398
-13 A 397 399
-13 G 398 400
+12 T 387 389
+12 C 388 -1
+13 T -1 391
+13 A 390 392
+13 C 391 393
+13 C 392 394
+13 C 393 395
+13 C 394 396
+13 A 395 397
+13 A 396 398
+13 G 397 399
+13 A 398 400
 13 A 399 401
-13 C 400 402
-13 C 401 403
-13 T 402 404
-13 G 403 405
-13 C 404 406
-13 C 405 407
-13 C 406 408
-13 G 407 409
-13 G 408 410
-13 A 409 411
-13 T 410 412
+13 A 400 402
+13 G 401 403
+13 G 402 404
+13 C 403 405
+13 G 404 406
+13 T 405 407
+13 A 406 408
+13 T 407 409
+13 T 408 410
+13 T 409 411
+13 A 410 412
 13 G 411 413
-13 G 412 414
-13 T 413 415
-13 G 414 416
-13 G 415 417
-13 A 416 418
-13 T 417 419
-13 A 418 420
-13 A 419 421
-13 A 420 422
+13 A 412 414
+13 G 413 415
+13 C 414 416
+13 T 415 417
+13 T 416 418
+13 A 417 419
+13 T 418 420
+13 C 419 421
+13 G 420 422
 13 T 421 -1
-14 T -1 424
-14 A 423 425
-14 A 424 426
-14 C 425 427
-14 G 426 428
-14 C 427 429
-14 G 428 430
-14 G 429 431
-14 A 430 432
-14 C 431 433
-14 A 432 434
-14 C 433 435
-14 G 434 436
-14 T 435 437
-14 C 436 438
-14 C 437 439
-14 A 438 440
-14 T 439 441
+14 A -1 424
+14 G 423 425
+14 C 424 426
+14 G 425 427
+14 C 426 428
+14 G 427 429
+14 A 428 430
+14 T 429 431
+14 T 430 432
+14 G 431 433
+14 G 432 434
+14 T 433 435
+14 T 434 436
+14 C 435 437
+14 G 436 438
+14 T 437 439
+14 G 438 440
+14 C 439 441
 14 G 440 442
-14 C 441 443
-14 G 442 444
-14 A 443 445
-14 G 444 446
-14 G 445 447
-14 T 446 448
-14 T 447 449
-14 C 448 450
+14 A 441 443
+14 A 442 444
+14 C 443 445
+14 C 444 446
+14 A 445 447
+14 A 446 448
+14 A 447 449
+14 G 448 450
 14 A 449 451
-14 C 450 452
+14 T 450 452
 14 G 451 453
 14 C 452 454
-14 C 453 -1
+14 G 453 -1
diff --git a/mrdna/readers/test/virt2nuc b/mrdna/readers/test/test_insert.json.virt2nuc
similarity index 100%
rename from mrdna/readers/test/virt2nuc
rename to mrdna/readers/test/test_insert.json.virt2nuc