diff --git a/atomrdf/structure.py b/atomrdf/structure.py index 676ae33..d5681d9 100644 --- a/atomrdf/structure.py +++ b/atomrdf/structure.py @@ -2125,7 +2125,8 @@ def select_by_plane(self, plane, distance, reverse_orientation=False): def translate(self, translation_vector, plane=None, distance=None, reverse_orientation=False, - copy_structure=True): + copy_structure=True, + add_triples=True): if copy_structure: sys = self.duplicate() @@ -2153,7 +2154,7 @@ def translate(self, translation_vector, if plane is not None: sys.remove_selection() - if sys.graph is not None: + if (sys.graph is not None) and add_triples: sys.add_translation_triples(translation_vector, plane, distance) if self.sample.toPython() != sys.sample.toPython(): sys.graph.add((sys.sample, PROV.wasDerivedFrom, self.sample)) @@ -2172,6 +2173,45 @@ def add_translation_triples(self, translation_vector, plane, distance, ): self.graph.add((t_vector, CMSO.hasComponent_y, Literal(translation_vector[1], datatype=XSD.float),)) self.graph.add((t_vector, CMSO.hasComponent_z, Literal(translation_vector[2], datatype=XSD.float),)) + def shear(self, shear_vector, + plane, + distance, + reverse_orientation=False, + copy_structure=True): + + if copy_structure: + sys = self.duplicate() + #and add this new structure to the graph + sys.to_graph() + else: + sys = self + + if not np.dot(shear_vector, plane) == 0: + raise ValueError("shear vector must be perpendicular to the plane") + + sys = sys.translate(shear_vector, plane=plane, distance=distance, + reverse_orientation=reverse_orientation, copy_structure=False, + add_triples=False) + + if sys.graph is not None: + sys.add_shear_triples(shear_vector, plane, distance) + if self.sample.toPython() != sys.sample.toPython(): + sys.graph.add((sys.sample, PROV.wasDerivedFrom, self.sample)) + return sys + + def add_shear_triples(self, translation_vector, plane, distance, ): + activity_id = f"operation:{uuid.uuid4()}" + activity = self.graph.create_node(activity_id, UNSAFEASMO.ShearOperation) + self.graph.add((self.sample, PROV.wasGeneratedBy, activity)) + + #now add specifics + #shear is a vector + t_vector = self.graph.create_node(f"{activity_id}_ShearVector", CMSO.Vector) + self.graph.add((activity, CMSO.hasVector, t_vector)) + self.graph.add((t_vector, CMSO.hasComponent_x, Literal(translation_vector[0], datatype=XSD.float),)) + self.graph.add((t_vector, CMSO.hasComponent_y, Literal(translation_vector[1], datatype=XSD.float),)) + self.graph.add((t_vector, CMSO.hasComponent_z, Literal(translation_vector[2], datatype=XSD.float),)) + #if plane is provided, add that as well if plane is not None: plane_vector = self.graph.create_node(f"{activity_id}_PlaneVector", CMSO.Vector) @@ -2180,4 +2220,3 @@ def add_translation_triples(self, translation_vector, plane, distance, ): self.graph.add((plane_vector, CMSO.hasComponent_y, Literal(plane[1], datatype=XSD.float),)) self.graph.add((plane_vector, CMSO.hasComponent_z, Literal(plane[2], datatype=XSD.float),)) self.graph.add((activity, UNSAFECMSO.hasDistance, Literal(distance, datatype=XSD.float))) - diff --git a/examples/09_structure_modification.ipynb b/examples/09_structure_modification.ipynb index 2389509..081d94c 100644 --- a/examples/09_structure_modification.ipynb +++ b/examples/09_structure_modification.ipynb @@ -15,7 +15,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "e86b8bfd68b4460986514b667e980822", + "model_id": "00f5b1869be1490c898b8f3a6361faa5", "version_major": 2, "version_minor": 0 }, @@ -310,7 +310,6 @@ } ], "layout": { - "height": 360, "margin": { "b": 10, "l": 10, @@ -319,38 +318,12 @@ }, "scene": { "aspectmode": "data", - "aspectratio": { - "x": 1.0000000000000002, - "y": 1.0000000000000002, - "z": 1.0000000000000002 - }, - "camera": { - "center": { - "x": 0, - "y": 0, - "z": 0 - }, - "eye": { - "x": 0.6715172427066829, - "y": 1.8402244874783886, - "z": 0.922029516031085 - }, - "projection": { - "type": "perspective" - }, - "up": { - "x": 0, - "y": 0, - "z": 1 - } - }, "xaxis": { "showbackground": false, "showticklabels": false, "title": { "text": "" }, - "type": "linear", "zerolinecolor": "#455A64" }, "yaxis": { @@ -359,7 +332,6 @@ "title": { "text": "" }, - "type": "linear", "zerolinecolor": "#455A64" }, "zaxis": { @@ -368,7 +340,6 @@ "title": { "text": "" }, - "type": "linear", "zerolinecolor": "#455A64" } }, @@ -1192,11 +1163,10 @@ "width": 700 } }, - "image/png": "iVBORw0KGgoAAAANSUhEUgAABUYAAAFoCAYAAACbqCE0AAAAAXNSR0IArs4c6QAAIABJREFUeF7s3X981dWd7/tP/AEVCHdmhEIAqy01aZw5KkkMVzxNQAMqEDWxVaEDtBcabgFbFKbgrylWRTyFFi/CDFTmFLj116lJyw/rSBSIRxwwAfV2jASdqcoPrbQzxwQU/ME9n5Xu7U7YO/v7Y333/u69X9/How9b9/e7vms915f+8Watz8o7efLkSeFCAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRySCCPYDSHZpuhIoAAAggggAACCCCAAAIIIIAAAggggIARIBjlQ0AAAQQQQAABBBBAAAEEEEAAAQQQQACBnBMgGM25KWfACCCAAAIIIIAAAggggAACCCCAAAIIIEAwyjeAAAIIIIAAAggggAACCCCAAAIIIIAAAjknQDCac1POgBFAAAEEEEAAAQQQQAABBBBAAAEEEECAYJRvAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRyToBgNOemnAEjgAACCCCAAAIIIIAAAggggAACCCCAAMEo3wACCCCAAAIIIIAAAggggAACCCCAAAII5JwAwWjOTTkDRgABBBBAAAEEEEAAAQQQQAABBBBAAAGCUb4BBBBAAAEEEEAAAQQQQAABBBBAAAEEEMg5AYLRnJtyBowAAggggAACCCCAAAIIIIAAAggggAACBKN8AwgggAACCCCAAAIIIIAAAggggAACCCCQcwIEozk35QwYAQQQQAABBBBAAAEEEEAAAQQQQAABBAhG+QYQQAABBBBAAAEEEEAAAQQQQAABBBBAIOcECEZzbsoZMAIIIIAAAggggAACCCCAAAIIIIAAAggQjPINIIAAAggggAACCCCAAAIIIIAAAggggEDOCRCM5tyUM2AEEEAAAQQQQAABBBBAAAEEEEAAAQQQIBjlG0AAAQQQQAABBBBAAAEEEEAAAQQQQACBnBMgGM25KWfACCCAAAIIIIAAAggggAACCCCAAAIIIEAwyjeAAAIIIIAAAggggAACCCCAAAIIIIAAAjknQDCac1POgBFAAAEEEEAAAQQQQAABBBBAAAEEEECAYJRvAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRyToBgNOemnAEjgAACCCCAAAIIIIAAAggggAACCCCAAMEo3wACCCCAAAII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XorzF7+OsVMn4vXX/n9XKT0CBAgQIECAAAECeQkIRvOSNS4BAgQIECBAgMDPBB7NzMT2voHYvHH9T/7t8tXrMT01HksX//yQJowECBAgQIAAAQIE8hAQjOahakwCBAgQIECAAIE5BZ6FoxE9f7rnqVDU+0KAAAECBAgQIFC4gGC0cHIFCRAgQIAAAQIE6rOzsa1vIIVIDmWqLVoEhQABAgQIECBAgEChAoLRQrkVI0CAAAECBAgQeCbw9OnT9D97ep7tHGVDgAABAgQIECBAoDgBwWhx1ioRIECAAAECBAgQIECAAAECBAgQINAmAoLRNlkI0yBAgAABAgQIECBAgAABAgQIECBAoDgBwWhx1ioRIECAAAECBAgQIECAAAECBAgQINAmAoLRNlkI0yBAgAABAgQIECBAgAABAgQIECBAoDgBwWhx1ioRIECAAAECBAgQIECAAAECBAgQINAmAoLRNlkI0yBAgAABAgQIECBAgAABAgQIECBAoDgBwWhx1ioRIECAAAECBAgQIECAAAECBAgQINAmAoLRNlkI0yBAgAABAgQIECBAgAABAgQIECBAoDgBwWhx1ioRIECAAAECBAgQIECAAAGiHedUAAAAZElEQVQCBAgQINAmAoLRNlkI0yBAgAABAgQIECBAgAABAgQIECBAoDgBwWhx1ioRIECAAAECBAgQIECAAAECBAgQINAmAoLRNlkI0yBAgAABAgQIECBAgAABAgQIECBAoDiB/wNK1gfzzZfPwQAAAABJRU5ErkJggg==", "text/html": [ - "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "s.show.all()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will select half of the system along the [1,0,0] plane" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "6.074999999999999" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plane = [1, 0, 0]\n", + "distance = s.box[0][0]/2\n", + "distance" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "tsys = s.translate([0, 2.5, 0], plane=plane, distance=distance)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "line": { + "color": "#263238", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "showlegend": false, + "type": "scatter3d", + "x": [ + 0, + 12.149999999999999, + 12.149999999999999, + 0, + 0 + ], + "y": [ + 0, + 0, + 12.149999999999999, + 12.149999999999999, + 0 + ], + "z": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "line": { + "color": "#263238", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "showlegend": false, + "type": "scatter3d", + "x": [ + 0, + 12.149999999999999, + 12.149999999999999, + 0, + 0 + ], + "y": [ + 0, + 0, + 12.149999999999999, + 12.149999999999999, + 0 + ], + "z": [ + 12.149999999999999, + 12.149999999999999, + 12.149999999999999, + 12.149999999999999, + 12.149999999999999 + ] + }, + { + "line": { + "color": "#263238", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "showlegend": false, + "type": "scatter3d", + "x": [ + 0, + 12.149999999999999, + 12.149999999999999, + 0, + 0 + ], + "y": [ + 0, + 0, + 0, + 0, + 0 + ], + "z": [ + 0, + 0, + 12.149999999999999, + 12.149999999999999, + 0 + ] + }, + { + "line": { + "color": "#263238", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "showlegend": false, + "type": "scatter3d", + "x": [ + 0, + 12.149999999999999, + 12.149999999999999, + 0, + 0 + ], + "y": [ + 12.149999999999999, + 12.149999999999999, + 12.149999999999999, + 12.149999999999999, + 12.149999999999999 + ], + "z": [ + 0, + 0, + 12.149999999999999, + 12.149999999999999, + 0 + ] + }, + { + "line": { + "color": "#263238", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "showlegend": false, + "type": "scatter3d", + "x": [ + 0, + 0, + 0, + 0, + 0 + ], + "y": [ + 0, + 12.149999999999999, + 12.149999999999999, + 0, + 0 + ], + "z": [ + 0, + 0, + 12.149999999999999, + 12.149999999999999, + 0 + ] + }, + { + "line": { + "color": "#263238", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "showlegend": false, + "type": "scatter3d", + "x": [ + 12.149999999999999, + 12.149999999999999, + 12.149999999999999, + 12.149999999999999, + 12.149999999999999 + ], + "y": [ + 0, + 12.149999999999999, + 12.149999999999999, + 0, + 0 + ], + "z": [ + 0, + 0, + 12.149999999999999, + 12.149999999999999, + 0 + ] + }, + { + "marker": { + "color": "#33a02c", + "line": { + "color": "#455A64", + "width": 0.5 + }, + "opacity": 1, + "size": 10, + "sizemode": "diameter", + "sizeref": 750 + }, + "mode": "markers", + "opacity": 1, + "type": "scatter3d", + "x": [ + 0, + 2.025, + 0, + 2.025, + 4.05, + 6.074999999999999, + 4.05, + 6.074999999999999, + 8.1, + 10.125, + 8.1, + 10.125, + 0, + 2.025, + 0, + 2.025, + 4.05, + 6.074999999999999, + 4.05, + 6.074999999999999, + 8.1, + 10.125, + 8.1, + 10.125, + 0, + 2.025, + 0, + 2.025, + 4.05, + 6.074999999999999, + 4.05, + 6.074999999999999, + 8.1, + 10.125, + 8.1, + 10.125, + 0, + 2.025, + 0, + 2.025, + 4.05, + 6.074999999999999, + 4.05, + 6.074999999999999, + 8.1, + 10.125, + 8.1, + 10.125, + 0, + 2.025, + 0, + 2.025, + 4.05, + 6.074999999999999, + 4.05, + 6.074999999999999, + 8.1, + 10.125, + 8.1, + 10.125, + 0, + 2.025, + 0, + 2.025, + 4.05, + 6.074999999999999, + 4.05, + 6.074999999999999, + 8.1, + 10.125, + 8.1, + 10.125, + 0, + 2.025, + 0, + 2.025, + 4.05, + 6.074999999999999, + 4.05, + 6.074999999999999, + 8.1, + 10.125, + 8.1, + 10.125, + 0, + 2.025, + 0, + 2.025, + 4.05, + 6.074999999999999, + 4.05, + 6.074999999999999, + 8.1, + 10.125, + 8.1, + 10.125, + 0, + 2.025, + 0, + 2.025, + 4.05, + 6.074999999999999, + 4.05, + 6.074999999999999, + 8.1, + 10.125, + 8.1, + 10.125 + ], + "y": [ + 2.5, + 2.5, + 4.525, + 4.525, + 2.5, + 0, + 4.525, + 2.025, + 0, + 0, + 2.025, + 2.025, + 6.55, + 6.55, + 8.575, + 8.575, + 6.55, + 4.05, + 8.575, + 6.074999999999999, + 4.05, + 4.05, + 6.074999999999999, + 6.074999999999999, + 10.6, + 10.6, + 12.625, + 12.625, + 10.6, + 8.1, + 12.625, + 10.125, + 8.1, + 8.1, + 10.125, + 10.125, + 2.5, + 2.5, + 4.525, + 4.525, + 2.5, + 0, + 4.525, + 2.025, + 0, + 0, + 2.025, + 2.025, + 6.55, + 6.55, + 8.575, + 8.575, + 6.55, + 4.05, + 8.575, + 6.074999999999999, + 4.05, + 4.05, + 6.074999999999999, + 6.074999999999999, + 10.6, + 10.6, + 12.625, + 12.625, + 10.6, + 8.1, + 12.625, + 10.125, + 8.1, + 8.1, + 10.125, + 10.125, + 2.5, + 2.5, + 4.525, + 4.525, + 2.5, + 0, + 4.525, + 2.025, + 0, + 0, + 2.025, + 2.025, + 6.55, + 6.55, + 8.575, + 8.575, + 6.55, + 4.05, + 8.575, + 6.074999999999999, + 4.05, + 4.05, + 6.074999999999999, + 6.074999999999999, + 10.6, + 10.6, + 12.625, + 12.625, + 10.6, + 8.1, + 12.625, + 10.125, + 8.1, + 8.1, + 10.125, + 10.125 + ], + "z": [ + 0, + 2.025, + 2.025, + 0, + 0, + 2.025, + 2.025, + 0, + 0, + 2.025, + 2.025, + 0, + 0, + 2.025, + 2.025, + 0, + 0, + 2.025, + 2.025, + 0, + 0, + 2.025, + 2.025, + 0, + 0, + 2.025, + 2.025, + 0, + 0, + 2.025, + 2.025, + 0, + 0, + 2.025, + 2.025, + 0, + 4.05, + 6.074999999999999, + 6.074999999999999, + 4.05, + 4.05, + 6.074999999999999, + 6.074999999999999, + 4.05, + 4.05, + 6.074999999999999, + 6.074999999999999, + 4.05, + 4.05, + 6.074999999999999, + 6.074999999999999, + 4.05, + 4.05, + 6.074999999999999, + 6.074999999999999, + 4.05, + 4.05, + 6.074999999999999, + 6.074999999999999, + 4.05, + 4.05, + 6.074999999999999, + 6.074999999999999, + 4.05, + 4.05, + 6.074999999999999, + 6.074999999999999, + 4.05, + 4.05, + 6.074999999999999, + 6.074999999999999, + 4.05, + 8.1, + 10.125, + 10.125, + 8.1, + 8.1, + 10.125, + 10.125, + 8.1, + 8.1, + 10.125, + 10.125, + 8.1, + 8.1, + 10.125, + 10.125, + 8.1, + 8.1, + 10.125, + 10.125, + 8.1, + 8.1, + 10.125, + 10.125, + 8.1, + 8.1, + 10.125, + 10.125, + 8.1, + 8.1, + 10.125, + 10.125, + 8.1, + 8.1, + 10.125, + 10.125, + 8.1 + ] + } + ], + "layout": { + "margin": { + "b": 10, + "l": 10, + "r": 10, + "t": 10 + }, + "scene": { + "aspectmode": "data", + "xaxis": { + "showbackground": false, + "showticklabels": false, + "title": { + "text": "" + }, + "zerolinecolor": "#455A64" + }, + "yaxis": { + "showbackground": false, + "showticklabels": false, + "title": { + "text": "" + }, + "zerolinecolor": "#455A64" + }, + "zaxis": { + "showbackground": false, + "showticklabels": false, + "title": { + "text": "" + }, + "zerolinecolor": "#455A64" + } + }, + "showlegend": false, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "width": 700 + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tsys.show.all()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "sample_0000e09c-e3e8-4c2f-ab11-36464dad7cc9\n", + "\n", + "sample_0000e09c-e3e8-4c2f-ab11-36464dad7cc9\n", + "\n", + "\n", + "\n", + "operation_2994f9a5-a458-4a9f-80c1-13c4f9bb7680\n", + "\n", + "operation_2994f9a5-a458-4a9f-80c1-13c4f9bb7680\n", + "\n", + "\n", + "\n", + "sample_0000e09c-e3e8-4c2f-ab11-36464dad7cc9->operation_2994f9a5-a458-4a9f-80c1-13c4f9bb7680\n", + "\n", + "\n", + "wasGeneratedBy\n", + "\n", + "\n", + "\n", + "sample_040ce3ba-fbb9-4e33-8936-b061aa1ef715\n", + "\n", + "sample_040ce3ba-fbb9-4e33-8936-b061aa1ef715\n", + "\n", + "\n", + "\n", + "sample_0000e09c-e3e8-4c2f-ab11-36464dad7cc9->sample_040ce3ba-fbb9-4e33-8936-b061aa1ef715\n", + "\n", + "\n", + "wasDerivedFrom\n", + "\n", + "\n", + "\n", + "asmo.TranslationOperation\n", + "\n", + "asmo.TranslationOperation\n", + "\n", + "\n", + "\n", + "operation_2994f9a5-a458-4a9f-80c1-13c4f9bb7680->asmo.TranslationOperation\n", + "\n", + "\n", + "type\n", + "\n", + "\n", + "\n", + "sample_d6d0e01f-377d-437a-a0f2-85f3df4e8132\n", + "\n", + "sample_d6d0e01f-377d-437a-a0f2-85f3df4e8132\n", + "\n", + "\n", + "\n", + "sample_d4b7f5f4-912c-4c36-95c8-164783ad6a7a\n", + "\n", + "sample_d4b7f5f4-912c-4c36-95c8-164783ad6a7a\n", + "\n", + "\n", + "\n", + "sample_d6d0e01f-377d-437a-a0f2-85f3df4e8132->sample_d4b7f5f4-912c-4c36-95c8-164783ad6a7a\n", + "\n", + "\n", + "wasDerivedFrom\n", + "\n", + "\n", + "\n", + "operation_75666ad0-fdda-4459-957a-66680f077c5b\n", + "\n", + "operation_75666ad0-fdda-4459-957a-66680f077c5b\n", + "\n", + "\n", + "\n", + "sample_d6d0e01f-377d-437a-a0f2-85f3df4e8132->operation_75666ad0-fdda-4459-957a-66680f077c5b\n", + "\n", + "\n", + "wasGeneratedBy\n", + "\n", + "\n", + "\n", + "asmo.RotationOperation\n", + "\n", + "asmo.RotationOperation\n", + "\n", + "\n", + "\n", + "operation_75666ad0-fdda-4459-957a-66680f077c5b->asmo.RotationOperation\n", + "\n", + "\n", + "type\n", + "\n", + "\n", + "\n", + "sample_6acca5b3-5fac-4ac1-bf56-b66f40f9ddad\n", + "\n", + "sample_6acca5b3-5fac-4ac1-bf56-b66f40f9ddad\n", + "\n", + "\n", + "\n", + "sample_6ff0615d-7bcc-4f45-a467-ef9f3ac5e04c\n", + "\n", + "sample_6ff0615d-7bcc-4f45-a467-ef9f3ac5e04c\n", + "\n", + "\n", + "\n", + "sample_6ff0615d-7bcc-4f45-a467-ef9f3ac5e04c->sample_6acca5b3-5fac-4ac1-bf56-b66f40f9ddad\n", + "\n", + "\n", + "wasDerivedFrom\n", + "\n", + "\n", + "\n", + "operation_61fe992f-c9b4-4569-8373-cf104d3fdb5f\n", + "\n", + "operation_61fe992f-c9b4-4569-8373-cf104d3fdb5f\n", + "\n", + "\n", + "\n", + "sample_6ff0615d-7bcc-4f45-a467-ef9f3ac5e04c->operation_61fe992f-c9b4-4569-8373-cf104d3fdb5f\n", + "\n", + "\n", + "wasGeneratedBy\n", + "\n", + "\n", + "\n", + "operation_61fe992f-c9b4-4569-8373-cf104d3fdb5f->asmo.TranslationOperation\n", + "\n", + "\n", + "type\n", "\n", "\n", "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 14, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -5609,7 +8482,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.1.-1" + "version": "3.11.8" } }, "nbformat": 4,