From b41db6c1e62697c47950e0c5bd7e1813963fc6ce Mon Sep 17 00:00:00 2001
From: pinyili2 <pinyili2@illinois.edu>
Date: Wed, 7 Aug 2024 16:55:08 -0500
Subject: [PATCH] update cadnano
---
mrdna/readers/__init__.py | 2 +
mrdna/readers/segmentmodel_from_cadnano.py | 9 +-
mrdna/readers/test.ipynb | 375 +++++++++++++++------
3 files changed, 276 insertions(+), 110 deletions(-)
diff --git a/mrdna/readers/__init__.py b/mrdna/readers/__init__.py
index 2778b41..b694be0 100644
--- a/mrdna/readers/__init__.py
+++ b/mrdna/readers/__init__.py
@@ -9,6 +9,8 @@ def read_cadnano(json_file, sequence=None, fill_sequence='T', **model_parameters
def read_cadnano_input(json_file,sequence=None,**model_parameters):
from .segmentmodel_from_cadnano import mrdna_model_from_cadnano
+ from .segmentmodel_from_lists import model_from_basepair_stack_3prime
+
return mrdna_model_from_cadnano(json_file,seq=sequence,**model_parameters)
diff --git a/mrdna/readers/segmentmodel_from_cadnano.py b/mrdna/readers/segmentmodel_from_cadnano.py
index 9bccb0c..ee83a3d 100644
--- a/mrdna/readers/segmentmodel_from_cadnano.py
+++ b/mrdna/readers/segmentmodel_from_cadnano.py
@@ -186,5 +186,10 @@ def mrdna_model_from_cadnano(json_file,seq=None,**model_parameters):
seq=None
else:
seq=nt_prop["seq"]
- model = model_from_basepair_stack_3prime( nt_prop["r"], nt_prop["bp"], nt_prop["stack"], nt_prop["threeprime"], seq,nt_prop["orientation"], **model_parameters )
-
+
+ r=np.array(list(nt_prop['r']))
+ bp=np.array(list(nt_prop['bp']))
+ three_prime=np.array((list(nt_prop["threeprime"])))
+ 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/test.ipynb b/mrdna/readers/test.ipynb
index 85e11c4..4a0fa13 100644
--- a/mrdna/readers/test.ipynb
+++ b/mrdna/readers/test.ipynb
@@ -2,8 +2,8 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 342,
- "id": "090f69c6",
+ "execution_count": 9,
+ "id": "d3431aaa",
"metadata": {
"scrolled": true
},
@@ -11,13 +11,17 @@
"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": 2,
- "id": "a99e1791",
+ "id": "1b3781b0",
"metadata": {},
"outputs": [],
"source": [
@@ -27,7 +31,7 @@
{
"cell_type": "code",
"execution_count": 1,
- "id": "0b58d7e9",
+ "id": "d599c577",
"metadata": {},
"outputs": [
{
@@ -51,8 +55,105 @@
},
{
"cell_type": "code",
- "execution_count": 553,
- "id": "6033edc9",
+ "execution_count": 6,
+ "id": "7a326c43",
+ "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",
+ "\n",
+ "\n",
+ "def read_json_file(filename):\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_df\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 rotationAboutAxis(np.array((0,0,1)),angle)\n",
+ "\n",
+ "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"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "19281ee2",
"metadata": {},
"outputs": [],
"source": [
@@ -123,8 +224,8 @@
},
{
"cell_type": "code",
- "execution_count": 555,
- "id": "8e48e7d1",
+ "execution_count": 11,
+ "id": "77a45909",
"metadata": {},
"outputs": [
{
@@ -133,67 +234,125 @@
"text": [
"Found cadnano version 2 file\n"
]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "<ipython-input-7-d91c550125eb>:37: SettingWithCopyWarning: \n",
+ "A value is trying to be set on a copy of a slice from a DataFrame\n",
+ "\n",
+ "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
+ " nt_prop[\"bp\"][bp1]=bp2\n",
+ "<ipython-input-7-d91c550125eb>:38: SettingWithCopyWarning: \n",
+ "A value is trying to be set on a copy of a slice from a DataFrame\n",
+ "\n",
+ "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
+ " nt_prop[\"bp\"][bp2]=bp1\n",
+ "<ipython-input-7-d91c550125eb>:59: SettingWithCopyWarning: \n",
+ "A value is trying to be set on a copy of a slice from a DataFrame\n",
+ "\n",
+ "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
+ " nt_prop[\"stack\"][stackid.index[np.where(np.array(stackid)!=-1)]]=nt_prop[\"threeprime\"][stackid.index[np.where(np.array(stackid)!=-1)]]\n"
+ ]
}
],
"source": [
- "nt_prop=gen_prop_table(\"test/Na_liu.json\")"
+ "nt_prop=gen_prop_table(\"test/test.json\")"
]
},
{
"cell_type": "code",
- "execution_count": 560,
- "id": "4da2c91e",
+ "execution_count": 20,
+ "id": "60d832bf",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "(array([ 12, 13, 14, ..., 13920, 13921, 13922]),)"
+ "array([[[ 0.14904227, -0.98883083, 0. ],\n",
+ " [ 0.98883083, 0.14904227, 0. ],\n",
+ " [ 0. , 0. , 1. ]],\n",
+ "\n",
+ " [[-0.43388374, -0.90096887, 0. ],\n",
+ " [ 0.90096887, -0.43388374, 0. ],\n",
+ " [ 0. , 0. , 1. ]],\n",
+ "\n",
+ " [[-0.8660254 , -0.5 , 0. ],\n",
+ " [ 0.5 , -0.8660254 , 0. ],\n",
+ " [ 0. , 0. , 1. ]],\n",
+ "\n",
+ " ...,\n",
+ "\n",
+ " [[-0.14904227, -0.98883083, 0. ],\n",
+ " [ 0.98883083, -0.14904227, 0. ],\n",
+ " [ 0. , 0. , 1. ]],\n",
+ "\n",
+ " [[-0.68017274, -0.73305187, 0. ],\n",
+ " [ 0.73305187, -0.68017274, 0. ],\n",
+ " [ 0. , 0. , 1. ]],\n",
+ "\n",
+ " [[-0.97492791, -0.22252093, 0. ],\n",
+ " [ 0.22252093, -0.97492791, 0. ],\n",
+ " [ 0. , 0. , 1. ]]])"
]
},
- "execution_count": 560,
+ "execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "np.where(np.array(nt_prop[\"bp\"])!=-1)"
+ "np.array(list(nt_prop['orientation']))"
]
},
{
"cell_type": "code",
- "execution_count": 562,
- "id": "da512048",
+ "execution_count": 560,
+ "id": "cd1d0730",
"metadata": {},
"outputs": [
{
"data": {
"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"
+ "(array([ 12, 13, 14, ..., 13920, 13921, 13922]),)"
]
},
- "execution_count": 562,
+ "execution_count": 560,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "nt_prop.loc[12]"
+ "np.where(np.array(nt_prop[\"bp\"])!=-1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "0373e4dc",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'nt_prop' 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-3-68f62b8d2117>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mnt_prop\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
+ "\u001b[0;31mNameError\u001b[0m: name 'nt_prop' is not defined"
+ ]
+ }
+ ],
+ "source": [
+ "nt_prop"
]
},
{
"cell_type": "code",
"execution_count": 468,
- "id": "95fb0515",
+ "id": "ff612c08",
"metadata": {},
"outputs": [],
"source": [
@@ -204,7 +363,7 @@
{
"cell_type": "code",
"execution_count": 500,
- "id": "dcc227ca",
+ "id": "96ffa55b",
"metadata": {},
"outputs": [
{
@@ -225,7 +384,7 @@
{
"cell_type": "code",
"execution_count": 498,
- "id": "08d33dfb",
+ "id": "3ca0ce24",
"metadata": {},
"outputs": [
{
@@ -247,7 +406,7 @@
{
"cell_type": "code",
"execution_count": 480,
- "id": "c2347336",
+ "id": "d11603b3",
"metadata": {},
"outputs": [
{
@@ -268,7 +427,7 @@
{
"cell_type": "code",
"execution_count": 549,
- "id": "795140b5",
+ "id": "e5731ae8",
"metadata": {},
"outputs": [
{
@@ -300,7 +459,7 @@
{
"cell_type": "code",
"execution_count": 544,
- "id": "f98c2927",
+ "id": "4a0bb208",
"metadata": {},
"outputs": [
{
@@ -324,7 +483,7 @@
{
"cell_type": "code",
"execution_count": 550,
- "id": "56385511",
+ "id": "ea73aed6",
"metadata": {},
"outputs": [
{
@@ -354,7 +513,7 @@
{
"cell_type": "code",
"execution_count": 548,
- "id": "8565bdb9",
+ "id": "033ef083",
"metadata": {},
"outputs": [
{
@@ -378,7 +537,7 @@
{
"cell_type": "code",
"execution_count": 527,
- "id": "ffa55e8a",
+ "id": "284c6b7a",
"metadata": {},
"outputs": [
{
@@ -403,7 +562,7 @@
{
"cell_type": "code",
"execution_count": 503,
- "id": "43a9cef8",
+ "id": "70fafb27",
"metadata": {},
"outputs": [
{
@@ -429,7 +588,7 @@
{
"cell_type": "code",
"execution_count": 537,
- "id": "5d92876d",
+ "id": "08e4fe4a",
"metadata": {},
"outputs": [
{
@@ -478,7 +637,7 @@
{
"cell_type": "code",
"execution_count": 491,
- "id": "6f5d2675",
+ "id": "e12ead08",
"metadata": {},
"outputs": [
{
@@ -499,7 +658,7 @@
{
"cell_type": "code",
"execution_count": 493,
- "id": "15fa1dec",
+ "id": "6d7ca49f",
"metadata": {},
"outputs": [
{
@@ -521,7 +680,7 @@
{
"cell_type": "code",
"execution_count": 4,
- "id": "abd8b729",
+ "id": "e9ace3af",
"metadata": {},
"outputs": [],
"source": [
@@ -532,7 +691,7 @@
{
"cell_type": "code",
"execution_count": null,
- "id": "86dc559b",
+ "id": "954df4d2",
"metadata": {},
"outputs": [],
"source": []
@@ -540,7 +699,7 @@
{
"cell_type": "code",
"execution_count": 18,
- "id": "b7a36513",
+ "id": "7fcb7bd0",
"metadata": {},
"outputs": [],
"source": [
@@ -562,7 +721,7 @@
{
"cell_type": "code",
"execution_count": 358,
- "id": "c590e405",
+ "id": "e0d8b3ff",
"metadata": {},
"outputs": [
{
@@ -591,7 +750,7 @@
{
"cell_type": "code",
"execution_count": 441,
- "id": "28e8fc5f",
+ "id": "6d351947",
"metadata": {},
"outputs": [
{
@@ -774,7 +933,7 @@
{
"cell_type": "code",
"execution_count": 199,
- "id": "75798a1d",
+ "id": "a20c1429",
"metadata": {},
"outputs": [
{
@@ -795,7 +954,7 @@
{
"cell_type": "code",
"execution_count": 434,
- "id": "e90bd308",
+ "id": "39b7deb4",
"metadata": {},
"outputs": [],
"source": [
@@ -863,7 +1022,7 @@
{
"cell_type": "code",
"execution_count": 442,
- "id": "f1b789b7",
+ "id": "83f49b07",
"metadata": {},
"outputs": [
{
@@ -908,7 +1067,7 @@
{
"cell_type": "code",
"execution_count": 302,
- "id": "15c2f5a3",
+ "id": "891a3222",
"metadata": {},
"outputs": [],
"source": [
@@ -932,7 +1091,7 @@
{
"cell_type": "code",
"execution_count": 368,
- "id": "2103280f",
+ "id": "34a7d7b1",
"metadata": {},
"outputs": [],
"source": [
@@ -965,7 +1124,7 @@
{
"cell_type": "code",
"execution_count": 429,
- "id": "db2d23a1",
+ "id": "ec944c23",
"metadata": {},
"outputs": [],
"source": [
@@ -980,7 +1139,7 @@
{
"cell_type": "code",
"execution_count": 430,
- "id": "7a63c8bc",
+ "id": "d67c5833",
"metadata": {},
"outputs": [
{
@@ -1015,7 +1174,7 @@
{
"cell_type": "code",
"execution_count": 431,
- "id": "bdf5fe8f",
+ "id": "eca06274",
"metadata": {},
"outputs": [
{
@@ -1036,7 +1195,7 @@
{
"cell_type": "code",
"execution_count": 433,
- "id": "6f25d6f3",
+ "id": "1d66507f",
"metadata": {},
"outputs": [
{
@@ -1057,7 +1216,7 @@
{
"cell_type": "code",
"execution_count": 167,
- "id": "75d426b5",
+ "id": "c9ea70d5",
"metadata": {},
"outputs": [],
"source": [
@@ -1069,7 +1228,7 @@
{
"cell_type": "code",
"execution_count": 360,
- "id": "f7ebdd30",
+ "id": "02798620",
"metadata": {},
"outputs": [],
"source": [
@@ -1079,7 +1238,7 @@
{
"cell_type": "code",
"execution_count": 190,
- "id": "eead924e",
+ "id": "c39720e6",
"metadata": {},
"outputs": [
{
@@ -1262,7 +1421,7 @@
{
"cell_type": "code",
"execution_count": 200,
- "id": "71493bd1",
+ "id": "81cd15ec",
"metadata": {},
"outputs": [],
"source": [
@@ -1298,7 +1457,7 @@
{
"cell_type": "code",
"execution_count": 201,
- "id": "3622ebc9",
+ "id": "719a89e5",
"metadata": {},
"outputs": [
{
@@ -1321,7 +1480,7 @@
{
"cell_type": "code",
"execution_count": 146,
- "id": "74c4ae5a",
+ "id": "a8470ece",
"metadata": {},
"outputs": [],
"source": [
@@ -1331,7 +1490,7 @@
{
"cell_type": "code",
"execution_count": 148,
- "id": "e6dc1404",
+ "id": "2ec8d095",
"metadata": {},
"outputs": [
{
@@ -1364,7 +1523,7 @@
{
"cell_type": "code",
"execution_count": 137,
- "id": "59fac010",
+ "id": "ab361dd6",
"metadata": {},
"outputs": [],
"source": [
@@ -1381,7 +1540,7 @@
{
"cell_type": "code",
"execution_count": null,
- "id": "d42bb41e",
+ "id": "f3ecd95f",
"metadata": {},
"outputs": [],
"source": []
@@ -1389,7 +1548,7 @@
{
"cell_type": "code",
"execution_count": 84,
- "id": "c73af530",
+ "id": "256fccfe",
"metadata": {},
"outputs": [],
"source": [
@@ -1400,7 +1559,7 @@
{
"cell_type": "code",
"execution_count": 156,
- "id": "0b16d613",
+ "id": "1ac95587",
"metadata": {},
"outputs": [
{
@@ -1526,7 +1685,7 @@
{
"cell_type": "code",
"execution_count": 157,
- "id": "90f57ab5",
+ "id": "c016cb03",
"metadata": {},
"outputs": [
{
@@ -1643,7 +1802,7 @@
{
"cell_type": "code",
"execution_count": 128,
- "id": "fac146fd",
+ "id": "11e1b98e",
"metadata": {},
"outputs": [
{
@@ -1665,7 +1824,7 @@
{
"cell_type": "code",
"execution_count": 127,
- "id": "baf83a53",
+ "id": "5a46d99d",
"metadata": {},
"outputs": [
{
@@ -1785,7 +1944,7 @@
{
"cell_type": "code",
"execution_count": 100,
- "id": "42d9c84a",
+ "id": "f6549e2c",
"metadata": {},
"outputs": [
{
@@ -1810,7 +1969,7 @@
{
"cell_type": "code",
"execution_count": 13,
- "id": "9cbfe156",
+ "id": "24b98917",
"metadata": {},
"outputs": [
{
@@ -1831,7 +1990,7 @@
{
"cell_type": "code",
"execution_count": 14,
- "id": "5c918abe",
+ "id": "71923b7f",
"metadata": {},
"outputs": [
{
@@ -1853,7 +2012,7 @@
{
"cell_type": "code",
"execution_count": 198,
- "id": "eae94886",
+ "id": "1307361f",
"metadata": {},
"outputs": [
{
@@ -1875,7 +2034,7 @@
{
"cell_type": "code",
"execution_count": 15,
- "id": "8fc2335a",
+ "id": "3772e934",
"metadata": {},
"outputs": [
{
@@ -1896,7 +2055,7 @@
{
"cell_type": "code",
"execution_count": 173,
- "id": "715d6b94",
+ "id": "5c1f341d",
"metadata": {},
"outputs": [],
"source": [
@@ -1932,7 +2091,7 @@
{
"cell_type": "code",
"execution_count": 177,
- "id": "327e0a5e",
+ "id": "495b9e03",
"metadata": {},
"outputs": [],
"source": [
@@ -1968,7 +2127,7 @@
{
"cell_type": "code",
"execution_count": 187,
- "id": "f31089a3",
+ "id": "c70f83b0",
"metadata": {},
"outputs": [
{
@@ -2195,7 +2354,7 @@
{
"cell_type": "code",
"execution_count": 142,
- "id": "fede9c99",
+ "id": "df50d6fb",
"metadata": {},
"outputs": [],
"source": [
@@ -2232,7 +2391,7 @@
{
"cell_type": "code",
"execution_count": 117,
- "id": "b0272fe0",
+ "id": "f6f7acb5",
"metadata": {},
"outputs": [],
"source": [
@@ -2253,7 +2412,7 @@
{
"cell_type": "code",
"execution_count": 116,
- "id": "ad669f8a",
+ "id": "8afcf746",
"metadata": {},
"outputs": [
{
@@ -2465,7 +2624,7 @@
{
"cell_type": "code",
"execution_count": 157,
- "id": "95284143",
+ "id": "2132b521",
"metadata": {},
"outputs": [
{
@@ -2489,7 +2648,7 @@
{
"cell_type": "code",
"execution_count": 152,
- "id": "1e445750",
+ "id": "539a2be6",
"metadata": {},
"outputs": [
{
@@ -2510,7 +2669,7 @@
{
"cell_type": "code",
"execution_count": 62,
- "id": "9768df8d",
+ "id": "ba5ab701",
"metadata": {},
"outputs": [
{
@@ -2738,7 +2897,7 @@
{
"cell_type": "code",
"execution_count": 3,
- "id": "583c116a",
+ "id": "0e988589",
"metadata": {},
"outputs": [],
"source": [
@@ -2864,7 +3023,7 @@
{
"cell_type": "code",
"execution_count": 4,
- "id": "1f10069b",
+ "id": "821ca309",
"metadata": {},
"outputs": [],
"source": [
@@ -2885,7 +3044,7 @@
{
"cell_type": "code",
"execution_count": 20,
- "id": "465ae2a5",
+ "id": "870c2661",
"metadata": {},
"outputs": [
{
@@ -2947,7 +3106,7 @@
{
"cell_type": "code",
"execution_count": 25,
- "id": "81d0004d",
+ "id": "a6cb689d",
"metadata": {},
"outputs": [
{
@@ -3009,7 +3168,7 @@
{
"cell_type": "code",
"execution_count": null,
- "id": "91dc0c7f",
+ "id": "dd799008",
"metadata": {},
"outputs": [],
"source": [
@@ -3022,7 +3181,7 @@
{
"cell_type": "code",
"execution_count": 13,
- "id": "e884018f",
+ "id": "df97d32a",
"metadata": {},
"outputs": [
{
@@ -3043,7 +3202,7 @@
{
"cell_type": "code",
"execution_count": 7,
- "id": "eef6f08c",
+ "id": "191c7b94",
"metadata": {},
"outputs": [
{
@@ -3092,7 +3251,7 @@
{
"cell_type": "code",
"execution_count": 36,
- "id": "6a4b7695",
+ "id": "d1fb1c97",
"metadata": {},
"outputs": [
{
@@ -3154,7 +3313,7 @@
{
"cell_type": "code",
"execution_count": 1,
- "id": "30cde48b",
+ "id": "aa4f5ed8",
"metadata": {},
"outputs": [
{
@@ -3180,7 +3339,7 @@
{
"cell_type": "code",
"execution_count": null,
- "id": "f05ebf5f",
+ "id": "cb9366dd",
"metadata": {},
"outputs": [],
"source": []
@@ -3188,7 +3347,7 @@
{
"cell_type": "code",
"execution_count": 3,
- "id": "2bd820af",
+ "id": "2d779081",
"metadata": {},
"outputs": [
{
@@ -3208,7 +3367,7 @@
{
"cell_type": "code",
"execution_count": 13,
- "id": "394c44c5",
+ "id": "ad471f3d",
"metadata": {},
"outputs": [
{
@@ -3229,7 +3388,7 @@
{
"cell_type": "code",
"execution_count": 15,
- "id": "12c3ce83",
+ "id": "9d66b3aa",
"metadata": {},
"outputs": [
{
@@ -3299,7 +3458,7 @@
{
"cell_type": "code",
"execution_count": 16,
- "id": "11a55f6c",
+ "id": "50447f7e",
"metadata": {},
"outputs": [],
"source": [
@@ -3310,7 +3469,7 @@
{
"cell_type": "code",
"execution_count": 26,
- "id": "07e5d147",
+ "id": "145493e6",
"metadata": {},
"outputs": [
{
@@ -3419,7 +3578,7 @@
{
"cell_type": "code",
"execution_count": 25,
- "id": "123e2f5e",
+ "id": "bda26a99",
"metadata": {},
"outputs": [
{
@@ -3440,7 +3599,7 @@
{
"cell_type": "code",
"execution_count": 10,
- "id": "670a0bc5",
+ "id": "21c76d05",
"metadata": {},
"outputs": [
{
@@ -3471,7 +3630,7 @@
{
"cell_type": "code",
"execution_count": 1,
- "id": "bcb8f7cc",
+ "id": "49dad459",
"metadata": {},
"outputs": [
{
@@ -3968,7 +4127,7 @@
{
"cell_type": "code",
"execution_count": 3,
- "id": "1b177c60",
+ "id": "7badd9d8",
"metadata": {},
"outputs": [
{
@@ -4002,7 +4161,7 @@
{
"cell_type": "code",
"execution_count": 4,
- "id": "677c2d67",
+ "id": "a1ba34df",
"metadata": {},
"outputs": [
{
@@ -4022,7 +4181,7 @@
{
"cell_type": "code",
"execution_count": 5,
- "id": "7e7ba0e1",
+ "id": "e7309034",
"metadata": {},
"outputs": [],
"source": [
@@ -4032,7 +4191,7 @@
{
"cell_type": "code",
"execution_count": 6,
- "id": "52014792",
+ "id": "705faaff",
"metadata": {},
"outputs": [
{
@@ -4053,7 +4212,7 @@
{
"cell_type": "code",
"execution_count": 7,
- "id": "8b1b263b",
+ "id": "75417690",
"metadata": {},
"outputs": [
{
@@ -4080,7 +4239,7 @@
{
"cell_type": "code",
"execution_count": null,
- "id": "abb6ad51",
+ "id": "8ca5d402",
"metadata": {},
"outputs": [],
"source": []
--
GitLab