diff --git a/mrdna/readers/.ipynb_checkpoints/test-checkpoint.ipynb b/mrdna/readers/.ipynb_checkpoints/test-checkpoint.ipynb
index f708f52415803193537b3354f3b54b9a7cd29e12..a3bd160b751ec4f98fab99afeb23a4076371dfd4 100644
--- a/mrdna/readers/.ipynb_checkpoints/test-checkpoint.ipynb
+++ b/mrdna/readers/.ipynb_checkpoints/test-checkpoint.ipynb
@@ -2,24 +2,59 @@
  "cells": [
   {
    "cell_type": "code",
-   "execution_count": 342,
-   "id": "8abe7172",
+   "execution_count": 1,
+   "id": "03eb8540",
    "metadata": {
     "scrolled": true
    },
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "pip3 install termcolor\n"
+     ]
+    }
+   ],
    "source": [
     "import pandas as pd\n",
     "import pickle\n",
-    "import numpy as np"
+    "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": 343,
-   "id": "a6c10574",
+   "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",
@@ -28,98 +63,536 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 553,
-   "id": "1322927e",
+   "execution_count": 15,
+   "id": "3a134bd9-0d8c-40b2-bf71-7b2310e09802",
    "metadata": {},
    "outputs": [],
    "source": [
-    "def gen_prop_table(json_file):\n",
-    "    part,vslist=read_json_file(json_file)\n",
-    "    props = part.getModelProperties().copy()\n",
+    "def get_lattice(part):\n",
+    "    lattice_type = None\n",
+    "    _gt = part.getGridType()\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",
+    "        lattice_type = _gt.name.lower()\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",
-    "    vhi=vslist.index[vhi]\n",
-    "    vhj=vslist.index[vhj]\n",
-    "    nt_prop[\"vh\"]=list(vhi)+list(vhj)\n",
-    "    nt_prop[\"zid\"]=list(zidi)+list(zidj)\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[\"r\"]=[part.getCoordinate(helix_id, indices) for helix_id, indices in zip(nt_prop[\"vh\"],nt_prop[\"zid\"])]\n",
-    "    nt_prop[\"orientation\"]=[get_helix_angle(part, helix_id, indices) for helix_id,indices in 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",
-    "    for i in range(int(len(vhzid)/2)):\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",
-    "            bp1,bp2=(i,1+i+vhzid[i+1:].index(vhzid[i]))\n",
-    "            nt_prop[\"bp\"][bp1]=bp2\n",
-    "            nt_prop[\"bp\"][bp2]=bp1\n",
+    "            bp[counter]=bp_map[(i,j,not(k))]\n",
     "        except:\n",
     "            pass\n",
-    "    tprime_list=-np.ones(len(nt_prop.index),dtype=int)\n",
-    "    index2=list(zip(vhzid,nt_prop[\"is_scaf\"]))\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",
+    "    nt_prop[\"bp\"]=bp\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    \n",
-    "\n",
-    "\n",
-    "    return nt_prop\n"
+    "    return nt_prop"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 555,
-   "id": "c787cb64",
+   "execution_count": 19,
+   "id": "11b0f5de-80f6-4845-b97f-a9d31e7be90a",
    "metadata": {},
    "outputs": [
     {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Found cadnano version 2 file\n"
-     ]
+     "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": [
-    "nt_prop=gen_prop_table(\"test/Na_liu.json\")"
+    "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": "927f76f3",
+   "id": "5ee54071",
    "metadata": {},
    "outputs": [
     {
@@ -139,38 +612,223 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 562,
-   "id": "2093c036",
+   "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                                                             0\n",
-       "zid                                                           21\n",
-       "is_scaf                                                     True\n",
-       "r                                [0.0, 15.75, 7.140000000000001]\n",
-       "bp                                                          7560\n",
-       "stack                                                         -1\n",
-       "threeprime                                                    13\n",
-       "seq                                                           -1\n",
-       "orientation    [[-4.440892098500626e-16, 1.0, 0.0], [-1.0, -4...\n",
-       "Name: 12, dtype: object"
+       "     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": 562,
+     "execution_count": 21,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "nt_prop.loc[12]"
+    "nt_prop"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 468,
-   "id": "51b62714",
+   "id": "156dcda2",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -181,7 +839,7 @@
   {
    "cell_type": "code",
    "execution_count": 500,
-   "id": "66e9eacd",
+   "id": "6413d856",
    "metadata": {},
    "outputs": [
     {
@@ -202,7 +860,7 @@
   {
    "cell_type": "code",
    "execution_count": 498,
-   "id": "ddecdaef",
+   "id": "fe8797db",
    "metadata": {},
    "outputs": [
     {
@@ -224,7 +882,7 @@
   {
    "cell_type": "code",
    "execution_count": 480,
-   "id": "ea39cbd0",
+   "id": "9f1b975f",
    "metadata": {},
    "outputs": [
     {
@@ -245,7 +903,7 @@
   {
    "cell_type": "code",
    "execution_count": 549,
-   "id": "5008fa72",
+   "id": "a16f3fd0",
    "metadata": {},
    "outputs": [
     {
@@ -277,7 +935,7 @@
   {
    "cell_type": "code",
    "execution_count": 544,
-   "id": "7409a9a8",
+   "id": "b9f25d41",
    "metadata": {},
    "outputs": [
     {
@@ -301,7 +959,7 @@
   {
    "cell_type": "code",
    "execution_count": 550,
-   "id": "7e3b3abc",
+   "id": "976095ce",
    "metadata": {},
    "outputs": [
     {
@@ -331,7 +989,7 @@
   {
    "cell_type": "code",
    "execution_count": 548,
-   "id": "33c599fb",
+   "id": "ac8f5067",
    "metadata": {},
    "outputs": [
     {
@@ -355,7 +1013,7 @@
   {
    "cell_type": "code",
    "execution_count": 527,
-   "id": "c781d982",
+   "id": "1006fc48",
    "metadata": {},
    "outputs": [
     {
@@ -380,7 +1038,7 @@
   {
    "cell_type": "code",
    "execution_count": 503,
-   "id": "7efc3ee8",
+   "id": "09c7e7d4",
    "metadata": {},
    "outputs": [
     {
@@ -406,7 +1064,7 @@
   {
    "cell_type": "code",
    "execution_count": 537,
-   "id": "0b3eaca4",
+   "id": "5f0c5266",
    "metadata": {},
    "outputs": [
     {
@@ -455,7 +1113,7 @@
   {
    "cell_type": "code",
    "execution_count": 491,
-   "id": "99e544cd",
+   "id": "fec987da",
    "metadata": {},
    "outputs": [
     {
@@ -476,7 +1134,7 @@
   {
    "cell_type": "code",
    "execution_count": 493,
-   "id": "264bc035",
+   "id": "f332ad87",
    "metadata": {},
    "outputs": [
     {
@@ -498,7 +1156,7 @@
   {
    "cell_type": "code",
    "execution_count": 4,
-   "id": "4f596a68",
+   "id": "dd3cd839",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -509,7 +1167,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "ce978dbf",
+   "id": "41b3d9af",
    "metadata": {},
    "outputs": [],
    "source": []
@@ -517,7 +1175,7 @@
   {
    "cell_type": "code",
    "execution_count": 18,
-   "id": "e10006d7",
+   "id": "9ec18edc",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -538,8 +1196,8 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 358,
-   "id": "ed9e6b6f",
+   "execution_count": 13,
+   "id": "2fa31a78",
    "metadata": {},
    "outputs": [
     {
@@ -552,23 +1210,23 @@
     {
      "data": {
       "text/plain": [
-       "NucleicAcidPart_-1_3904"
+       "NucleicAcidPart_-1_2800"
       ]
      },
-     "execution_count": 358,
+     "execution_count": 13,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "p,f=read_json_file(\"test.json\")\n",
+    "p=read_json_file(\"test/test.json\")\n",
     "p"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 441,
-   "id": "8ec446ce",
+   "id": "64eb309f",
    "metadata": {},
    "outputs": [
     {
@@ -751,7 +1409,7 @@
   {
    "cell_type": "code",
    "execution_count": 199,
-   "id": "263415de",
+   "id": "bda3cddd",
    "metadata": {},
    "outputs": [
     {
@@ -772,7 +1430,7 @@
   {
    "cell_type": "code",
    "execution_count": 434,
-   "id": "6e58a7e7",
+   "id": "a86cfa84",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -840,7 +1498,7 @@
   {
    "cell_type": "code",
    "execution_count": 442,
-   "id": "3ee34e17",
+   "id": "be5de5ba",
    "metadata": {},
    "outputs": [
     {
@@ -885,7 +1543,7 @@
   {
    "cell_type": "code",
    "execution_count": 302,
-   "id": "72245714",
+   "id": "0ce6701d",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -909,7 +1567,7 @@
   {
    "cell_type": "code",
    "execution_count": 368,
-   "id": "c3891b4a",
+   "id": "9d0e49cf",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -942,7 +1600,7 @@
   {
    "cell_type": "code",
    "execution_count": 429,
-   "id": "b3fcb6ac",
+   "id": "c1d77642",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -957,7 +1615,7 @@
   {
    "cell_type": "code",
    "execution_count": 430,
-   "id": "2565f375",
+   "id": "2c2d1227",
    "metadata": {},
    "outputs": [
     {
@@ -992,7 +1650,7 @@
   {
    "cell_type": "code",
    "execution_count": 431,
-   "id": "ecf2414e",
+   "id": "e701d029",
    "metadata": {},
    "outputs": [
     {
@@ -1013,7 +1671,7 @@
   {
    "cell_type": "code",
    "execution_count": 433,
-   "id": "5bc1a2b8",
+   "id": "4a62f5d9",
    "metadata": {},
    "outputs": [
     {
@@ -1034,7 +1692,7 @@
   {
    "cell_type": "code",
    "execution_count": 167,
-   "id": "5f500be3",
+   "id": "d80ab792",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -1046,7 +1704,7 @@
   {
    "cell_type": "code",
    "execution_count": 360,
-   "id": "d7f0b909",
+   "id": "8e009bc9",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -1056,7 +1714,7 @@
   {
    "cell_type": "code",
    "execution_count": 190,
-   "id": "686640b1",
+   "id": "3dc97f0d",
    "metadata": {},
    "outputs": [
     {
@@ -1239,7 +1897,7 @@
   {
    "cell_type": "code",
    "execution_count": 200,
-   "id": "ff964cef",
+   "id": "3d019b73",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -1275,7 +1933,7 @@
   {
    "cell_type": "code",
    "execution_count": 201,
-   "id": "97bce4fa",
+   "id": "fb789ffb",
    "metadata": {},
    "outputs": [
     {
@@ -1298,7 +1956,7 @@
   {
    "cell_type": "code",
    "execution_count": 146,
-   "id": "30246519",
+   "id": "98703867",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -1308,7 +1966,7 @@
   {
    "cell_type": "code",
    "execution_count": 148,
-   "id": "2b287b99",
+   "id": "c316fead",
    "metadata": {},
    "outputs": [
     {
@@ -1341,7 +1999,7 @@
   {
    "cell_type": "code",
    "execution_count": 137,
-   "id": "781327b0",
+   "id": "0718e41e",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -1358,7 +2016,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "91188f0a",
+   "id": "1a61115e",
    "metadata": {},
    "outputs": [],
    "source": []
@@ -1366,7 +2024,7 @@
   {
    "cell_type": "code",
    "execution_count": 84,
-   "id": "a4317b6b",
+   "id": "12198835",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -1377,7 +2035,7 @@
   {
    "cell_type": "code",
    "execution_count": 156,
-   "id": "7154c666",
+   "id": "1e5c9807",
    "metadata": {},
    "outputs": [
     {
@@ -1503,7 +2161,7 @@
   {
    "cell_type": "code",
    "execution_count": 157,
-   "id": "f82be5d8",
+   "id": "31c50f63",
    "metadata": {},
    "outputs": [
     {
@@ -1620,7 +2278,7 @@
   {
    "cell_type": "code",
    "execution_count": 128,
-   "id": "4053cca5",
+   "id": "67546136",
    "metadata": {},
    "outputs": [
     {
@@ -1642,7 +2300,7 @@
   {
    "cell_type": "code",
    "execution_count": 127,
-   "id": "2a012588",
+   "id": "bad20d6a",
    "metadata": {},
    "outputs": [
     {
@@ -1762,7 +2420,7 @@
   {
    "cell_type": "code",
    "execution_count": 100,
-   "id": "acfa6f0c",
+   "id": "48225afa",
    "metadata": {},
    "outputs": [
     {
@@ -1787,7 +2445,7 @@
   {
    "cell_type": "code",
    "execution_count": 13,
-   "id": "7e82631e",
+   "id": "c75bd92f",
    "metadata": {},
    "outputs": [
     {
@@ -1808,7 +2466,7 @@
   {
    "cell_type": "code",
    "execution_count": 14,
-   "id": "c69e710a",
+   "id": "00f1513e",
    "metadata": {},
    "outputs": [
     {
@@ -1830,7 +2488,7 @@
   {
    "cell_type": "code",
    "execution_count": 198,
-   "id": "c93f7b4b",
+   "id": "aaa65658",
    "metadata": {},
    "outputs": [
     {
@@ -1852,7 +2510,7 @@
   {
    "cell_type": "code",
    "execution_count": 15,
-   "id": "f44d5593",
+   "id": "cbddf07f",
    "metadata": {},
    "outputs": [
     {
@@ -1873,7 +2531,7 @@
   {
    "cell_type": "code",
    "execution_count": 173,
-   "id": "da99c2f2",
+   "id": "fac8699e",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -1909,7 +2567,7 @@
   {
    "cell_type": "code",
    "execution_count": 177,
-   "id": "bf41fbbe",
+   "id": "308cd6c1",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -1945,7 +2603,7 @@
   {
    "cell_type": "code",
    "execution_count": 187,
-   "id": "becc8ec8",
+   "id": "bc032680",
    "metadata": {},
    "outputs": [
     {
@@ -2172,7 +2830,7 @@
   {
    "cell_type": "code",
    "execution_count": 142,
-   "id": "65d304e7",
+   "id": "29ff7990",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -2209,7 +2867,7 @@
   {
    "cell_type": "code",
    "execution_count": 117,
-   "id": "1102332d",
+   "id": "3cb9542c",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -2230,7 +2888,7 @@
   {
    "cell_type": "code",
    "execution_count": 116,
-   "id": "9349147e",
+   "id": "4219838b",
    "metadata": {},
    "outputs": [
     {
@@ -2442,7 +3100,7 @@
   {
    "cell_type": "code",
    "execution_count": 157,
-   "id": "23c69dfb",
+   "id": "45168e4b",
    "metadata": {},
    "outputs": [
     {
@@ -2466,7 +3124,7 @@
   {
    "cell_type": "code",
    "execution_count": 152,
-   "id": "c6e2518a",
+   "id": "33e5c80d",
    "metadata": {},
    "outputs": [
     {
@@ -2487,7 +3145,7 @@
   {
    "cell_type": "code",
    "execution_count": 62,
-   "id": "bf85089c",
+   "id": "9b79e902",
    "metadata": {},
    "outputs": [
     {
@@ -2715,7 +3373,7 @@
   {
    "cell_type": "code",
    "execution_count": 3,
-   "id": "3fd57867",
+   "id": "cecd1c9f",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -2841,7 +3499,7 @@
   {
    "cell_type": "code",
    "execution_count": 4,
-   "id": "014caa04",
+   "id": "b4af37c1",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -2862,7 +3520,7 @@
   {
    "cell_type": "code",
    "execution_count": 20,
-   "id": "95719bec",
+   "id": "2fa89abc",
    "metadata": {},
    "outputs": [
     {
@@ -2924,7 +3582,7 @@
   {
    "cell_type": "code",
    "execution_count": 25,
-   "id": "f4034eb9",
+   "id": "6e620d24",
    "metadata": {},
    "outputs": [
     {
@@ -2986,7 +3644,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "b9adb4fe",
+   "id": "fef6094a",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -2999,7 +3657,7 @@
   {
    "cell_type": "code",
    "execution_count": 13,
-   "id": "ca67b08f",
+   "id": "be089a18",
    "metadata": {},
    "outputs": [
     {
@@ -3020,7 +3678,7 @@
   {
    "cell_type": "code",
    "execution_count": 7,
-   "id": "86a7a627",
+   "id": "6f75d365",
    "metadata": {},
    "outputs": [
     {
@@ -3069,7 +3727,7 @@
   {
    "cell_type": "code",
    "execution_count": 36,
-   "id": "63614edc",
+   "id": "8dfadf61",
    "metadata": {},
    "outputs": [
     {
@@ -3131,7 +3789,7 @@
   {
    "cell_type": "code",
    "execution_count": 1,
-   "id": "177fe2f1",
+   "id": "ba097c82",
    "metadata": {},
    "outputs": [
     {
@@ -3157,7 +3815,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "0c4a7b82",
+   "id": "1c4d4fa9",
    "metadata": {},
    "outputs": [],
    "source": []
@@ -3165,7 +3823,7 @@
   {
    "cell_type": "code",
    "execution_count": 3,
-   "id": "82b5073c",
+   "id": "d4ff1f83",
    "metadata": {},
    "outputs": [
     {
@@ -3185,7 +3843,7 @@
   {
    "cell_type": "code",
    "execution_count": 13,
-   "id": "684cdf08",
+   "id": "6f1dab46",
    "metadata": {},
    "outputs": [
     {
@@ -3206,7 +3864,7 @@
   {
    "cell_type": "code",
    "execution_count": 15,
-   "id": "95b9f60b",
+   "id": "615964fe",
    "metadata": {},
    "outputs": [
     {
@@ -3276,7 +3934,7 @@
   {
    "cell_type": "code",
    "execution_count": 16,
-   "id": "da04d8df",
+   "id": "a71b0639",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -3287,7 +3945,7 @@
   {
    "cell_type": "code",
    "execution_count": 26,
-   "id": "fc9fa817",
+   "id": "2bb83a1e",
    "metadata": {},
    "outputs": [
     {
@@ -3396,7 +4054,7 @@
   {
    "cell_type": "code",
    "execution_count": 25,
-   "id": "d030eea1",
+   "id": "86f5c21e",
    "metadata": {},
    "outputs": [
     {
@@ -3417,7 +4075,7 @@
   {
    "cell_type": "code",
    "execution_count": 10,
-   "id": "6586e97f",
+   "id": "f3fae511",
    "metadata": {},
    "outputs": [
     {
@@ -3448,7 +4106,7 @@
   {
    "cell_type": "code",
    "execution_count": 1,
-   "id": "f087752e",
+   "id": "07f3352b",
    "metadata": {},
    "outputs": [
     {
@@ -3945,7 +4603,7 @@
   {
    "cell_type": "code",
    "execution_count": 3,
-   "id": "d548b882",
+   "id": "61be89c1",
    "metadata": {},
    "outputs": [
     {
@@ -3979,7 +4637,7 @@
   {
    "cell_type": "code",
    "execution_count": 4,
-   "id": "bd65fa30",
+   "id": "a00c445c",
    "metadata": {},
    "outputs": [
     {
@@ -3999,7 +4657,7 @@
   {
    "cell_type": "code",
    "execution_count": 5,
-   "id": "96fe4106",
+   "id": "a648fae4",
    "metadata": {},
    "outputs": [],
    "source": [
@@ -4009,7 +4667,7 @@
   {
    "cell_type": "code",
    "execution_count": 6,
-   "id": "70b6c9a6",
+   "id": "9d100033",
    "metadata": {},
    "outputs": [
     {
@@ -4030,7 +4688,7 @@
   {
    "cell_type": "code",
    "execution_count": 7,
-   "id": "fc17c5e7",
+   "id": "66d3eaf4",
    "metadata": {},
    "outputs": [
     {
@@ -4057,7 +4715,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "id": "ba6c81e7",
+   "id": "f60b0cdc",
    "metadata": {},
    "outputs": [],
    "source": []
@@ -4065,7 +4723,7 @@
  ],
  "metadata": {
   "kernelspec": {
-   "display_name": "Python 3",
+   "display_name": "Python 3 (ipykernel)",
    "language": "python",
    "name": "python3"
   },
@@ -4079,7 +4737,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.8.18"
+   "version": "3.8.19"
   }
  },
  "nbformat": 4,
diff --git a/mrdna/readers/segmentmodel_from_cadnano.bak.py b/mrdna/readers/test/segmentmodel_from_cadnano.bak.py
similarity index 100%
rename from mrdna/readers/segmentmodel_from_cadnano.bak.py
rename to mrdna/readers/test/segmentmodel_from_cadnano.bak.py