├── LICENSE.txt ├── PLY_Files ├── 01_tetrahedron.ply ├── 02_cube.ply ├── 03_octahedron.ply ├── 04_dodecahedron.ply ├── 05_icosahedron.ply ├── 05_icosahedron_with_unused_vertex.ply ├── 06_cuboctahedron.ply ├── 07_icosidodecahedron.ply ├── 08_rhombicuboctahedron.ply ├── 09_snub_cube.ply ├── 10_truncated_cube.ply ├── 11_truncated_cuboctahedron.ply ├── 12_truncated_dodecahedron.ply ├── 13_truncated_icosahedron.ply ├── 14_truncated_octahedron.ply ├── 15_truncated_tetrahedron.ply ├── 16_gyroelongated_pentagonal_pyramid_(J11).ply ├── 17_triangular_bipyramid_(J12).ply ├── 18_pentagonal_bipyramid_(J13).ply ├── 19_gyroelongated_square_bipyramid_(J17).ply ├── 20_square_gyrobicupola_(J29).ply ├── 21_pentagonal_orthocupolarotunda_(J32).ply ├── 22_pentagonal_orthobirotunda_(J34).ply ├── 23_elongated_pentagonal_gyrobicupola_(J39).ply ├── 24_elongated_pentagonal_gyrobirotunda_(J43).ply ├── 25_gyroelongated_square_bicupola_(J45).ply ├── 26_rhombic_dodecahedron.ply ├── 27_rhombic_triacontahedron.ply ├── 28_deltoidal_icositetrahedron.ply ├── 29_pentagonal_icositetrahedron.ply ├── 30_triakis_octahedron.ply ├── 31_disdyakis_dodecahedron.ply ├── 32_triakis_icosahedron.ply ├── 33_pentakis_dodecahedron.ply ├── 34_tetrakis_hexahedron.ply ├── 35_triakis_tetrahedron.ply ├── 36_heptagonal_bipyramid.ply ├── 37_enneagonal_trapezohedron.ply ├── 38_small_stell_dodecahedron.ply ├── 39_rhombic_hexecontahedron.ply ├── 40_goldberg_dk5dgD.ply ├── 41_doublehelix.ply ├── 42_nested_cube.ply ├── 43_nested_octahedron.ply ├── 44_torus.ply ├── 45_double_torus.ply ├── 46_reinforced_cube.ply ├── 47_ball.ply ├── 48_nickedtorus.ply ├── 49_helix.ply ├── 50_rod.ply ├── 51_stickman.ply ├── 52_bottle.ply └── 53_bunny.ply ├── README.md ├── example_submission_script.py ├── pyDAEDALUS ├── 23SdomIIV_seq.txt ├── Automated_Design │ ├── ABform Replace │ │ ├── assign_staples_wChoices.py │ │ ├── dna_info.py │ │ ├── enum_scaf_bases_DX.py │ │ └── ply_to_input.py │ ├── DX_cage_design.py │ ├── PDB_loader.py │ ├── __init__.py │ ├── adj_scaf_nick_pos.py │ ├── arrange_neighbors.py │ ├── assign_scaf_to_edge.py │ ├── assign_staples_wChoices.py │ ├── constants.py │ ├── csv_staples.py │ ├── designate_edge_type.py │ ├── dna_info.py │ ├── enum_scaf_bases_DX.py │ ├── enum_scaf_bases_Hybrid.py │ ├── enum_scaf_bases_Twisted.py │ ├── gen_PDB.py │ ├── gen_schlegel.py │ ├── gen_stap_seq.py │ ├── gen_vert_to_face.py │ ├── ply_to_input.py │ ├── seq_to_text.py │ ├── set_routing_direction.py │ ├── split_edge.py │ ├── split_vert.py │ ├── util.py │ ├── xx_ConstArchive │ │ ├── constants_20190803.py │ │ ├── constants_23S5S.py │ │ ├── constants_EGFP.py │ │ ├── constants_M13.py │ │ ├── constants_old.py │ │ ├── constants_old_old.py │ │ ├── constants_old_old_old.py │ │ ├── constants_rPB66rRNA │ │ └── gen_PDB.py │ └── xx_SourceArchive │ │ └── tmpShit.bak ├── DAEDserve.py ├── EGFP_seq.txt ├── InstructionsForUse.txt ├── M13.txt ├── images │ ├── DX_Aform.png │ ├── DX_Aform_old.png │ ├── DX_Altform.png │ ├── DX_Bform.png │ ├── DX_Hform.png │ ├── DXedges.key │ └── icon.png ├── index.html ├── js │ ├── jquery-3.4.1.min.js │ ├── jquery-xmlrpc-master.zip │ ├── jquery-xmlrpc-master │ │ ├── .gitignore │ │ ├── LICENCE │ │ ├── README.md │ │ ├── bower.json │ │ ├── docs │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── api.rst │ │ │ ├── conf.py │ │ │ ├── index.rst │ │ │ ├── make.bat │ │ │ ├── overview.rst │ │ │ ├── requirements.txt │ │ │ └── types.rst │ │ ├── jquery.xmlrpc.js │ │ ├── jquery.xmlrpc.min.js │ │ ├── tests │ │ │ ├── index.html │ │ │ ├── min.html │ │ │ ├── qunit.css │ │ │ ├── qunit.js │ │ │ ├── tests.binary.js │ │ │ ├── tests.decoding.js │ │ │ ├── tests.document.js │ │ │ ├── tests.encoding.js │ │ │ └── tests.request.js │ │ └── xmlrpc.jquery.json │ ├── jquery.xmlrpc.min.js │ └── three.min.js ├── main.js ├── oct.ply ├── package.json ├── pbip.ply ├── pyDAEDALUSX.code-workspace ├── renderFile.js ├── requirements.txt ├── testServer.py └── tet.ply ├── pyDAEDALUSX_instructions.pdf └── requirements.txt /LICENSE.txt: -------------------------------------------------------------------------------- 1 | pyDAEDALUS - software to render nearly any 3D geometry as a scaffolded DNA origami nanoparticle. 2 | Copyright (C) 2017 MIT, Bathe Lab 3 | 4 | This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. 5 | 6 | This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 7 | 8 | The full license can be found https://opensource.org/licenses/GPL-2.0 . -------------------------------------------------------------------------------- /PLY_Files/01_tetrahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 4 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 4 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.000000 0.000000 0.612372 11 | -0.288675 -0.500000 -0.204124 12 | -0.288675 0.500000 -0.204124 13 | 0.577350 0.000000 -0.204124 14 | 3 0 2 1 15 | 3 0 1 3 16 | 3 0 3 2 17 | 3 1 2 3 18 | -------------------------------------------------------------------------------- /PLY_Files/02_cube.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 8 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 6 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.707000 0.707000 0.707000 11 | -0.707000 0.707000 0.707000 12 | -0.707000 -0.707000 0.707000 13 | 0.707000 -0.707000 0.707000 14 | 0.707000 -0.707000 -0.707000 15 | 0.707000 0.707000 -0.707000 16 | -0.707000 0.707000 -0.707000 17 | -0.707000 -0.707000 -0.707000 18 | 4 3 0 1 2 19 | 4 3 4 5 0 20 | 4 0 5 6 1 21 | 4 1 6 7 2 22 | 4 2 7 4 3 23 | 4 5 4 7 6 24 | -------------------------------------------------------------------------------- /PLY_Files/03_octahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 6 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 8 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.000000 0.000000 1.000000 11 | 0.000000 0.000000 -1.000000 12 | 0.000000 1.000000 0.000000 13 | 0.000000 -1.000000 0.000000 14 | 1.000000 0.000000 0.000000 15 | -1.000000 0.000000 0.000000 16 | 3 0 4 2 17 | 3 0 3 4 18 | 3 0 5 3 19 | 3 0 2 5 20 | 3 1 2 4 21 | 3 1 4 3 22 | 3 1 3 5 23 | 3 1 5 2 24 | -------------------------------------------------------------------------------- /PLY_Files/04_dodecahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 20 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 12 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.000000 0.000000 1.070470 11 | 0.713640 0.000000 0.797880 12 | -0.356820 0.618000 0.797880 13 | -0.356820 -0.618000 0.797880 14 | 0.797880 0.618030 0.356820 15 | 0.797880 -0.618000 0.356820 16 | -0.934170 0.381970 0.356820 17 | 0.136290 1.000000 0.356820 18 | 0.136290 -1.000000 0.356820 19 | -0.934170 -0.381970 0.356820 20 | 0.934170 0.381970 -0.356820 21 | 0.934170 -0.381970 -0.356820 22 | -0.797880 0.618000 -0.356820 23 | -0.136290 1.000000 -0.356820 24 | -0.136290 -1.000000 -0.356820 25 | -0.797880 -0.618030 -0.356820 26 | 0.356820 0.618000 -0.797880 27 | 0.356820 -0.618000 -0.797880 28 | -0.713640 0.000000 -0.797880 29 | 0.000000 0.000000 -1.070470 30 | 5 0 1 4 7 2 31 | 5 0 2 6 9 3 32 | 5 0 3 8 5 1 33 | 5 1 5 11 10 4 34 | 5 2 7 13 12 6 35 | 5 3 9 15 14 8 36 | 5 4 10 16 13 7 37 | 5 5 8 14 17 11 38 | 5 6 12 18 15 9 39 | 5 10 11 17 19 16 40 | 5 12 13 16 19 18 41 | 5 14 15 18 19 17 42 | -------------------------------------------------------------------------------- /PLY_Files/05_icosahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 12 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 20 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.000000 0.000000 1.176000 11 | 1.051000 0.000000 0.526000 12 | 0.324000 1.000000 0.525000 13 | -0.851000 0.618000 0.526000 14 | -0.851000 -0.618000 0.526000 15 | 0.325000 -1.000000 0.526000 16 | 0.851000 0.618000 -0.526000 17 | 0.851000 -0.618000 -0.526000 18 | -0.325000 1.000000 -0.526000 19 | -1.051000 0.000000 -0.526000 20 | -0.325000 -1.000000 -0.526000 21 | 0.000000 0.000000 -1.176000 22 | 3 0 1 2 23 | 3 0 2 3 24 | 3 0 3 4 25 | 3 0 4 5 26 | 3 0 5 1 27 | 3 1 5 7 28 | 3 1 7 6 29 | 3 1 6 2 30 | 3 2 6 8 31 | 3 2 8 3 32 | 3 3 8 9 33 | 3 3 9 4 34 | 3 4 9 10 35 | 3 4 10 5 36 | 3 5 10 7 37 | 3 6 7 11 38 | 3 6 11 8 39 | 3 7 10 11 40 | 3 8 11 9 41 | 3 9 11 10 42 | -------------------------------------------------------------------------------- /PLY_Files/05_icosahedron_with_unused_vertex.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 13 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 20 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.000000 0.000000 1.176000 11 | 1.051000 0.000000 0.526000 12 | 0.324000 1.000000 0.525000 13 | -0.851000 0.618000 0.526000 14 | -0.851000 -0.618000 0.526000 15 | 0.325000 -1.000000 0.526000 16 | 0.851000 0.618000 -0.526000 17 | 0.851000 -0.618000 -0.526000 18 | -0.325000 1.000000 -0.526000 19 | -1.051000 0.000000 -0.526000 20 | -0.325000 -1.000000 -0.526000 21 | 0.851000 0.618000 -0.526000 22 | 0.000000 0.000000 -1.176000 23 | 3 0 1 2 24 | 3 0 2 3 25 | 3 0 3 4 26 | 3 0 4 5 27 | 3 0 5 1 28 | 3 1 5 7 29 | 3 1 7 6 30 | 3 1 6 2 31 | 3 2 6 8 32 | 3 2 8 3 33 | 3 3 8 9 34 | 3 3 9 4 35 | 3 4 9 10 36 | 3 4 10 5 37 | 3 5 10 7 38 | 3 6 7 12 39 | 3 6 12 8 40 | 3 7 10 12 41 | 3 8 12 9 42 | 3 9 12 10 43 | -------------------------------------------------------------------------------- /PLY_Files/06_cuboctahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 12 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 14 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0 0 1.1547 11 | 1 0 0.57735 12 | 0.333333 0.942809 0.57735 13 | -1 0 0.57735 14 | -0.333333 -0.942809 0.57735 15 | 1 0 -0.57735 16 | 0.666667 -0.942809 0 17 | -0.666667 0.942809 0 18 | 0.333333 0.942809 -0.57735 19 | -1 0 -0.57735 20 | -0.333333 -0.942809 -0.57735 21 | 0 0 -1.1547 22 | 3 0 1 2 23 | 3 0 3 4 24 | 3 1 6 5 25 | 3 2 8 7 26 | 3 3 7 9 27 | 3 4 10 6 28 | 3 5 11 8 29 | 3 9 11 10 30 | 4 0 2 7 3 31 | 4 0 4 6 1 32 | 4 1 5 8 2 33 | 4 3 9 10 4 34 | 4 5 6 10 11 35 | 4 7 8 11 9 36 | -------------------------------------------------------------------------------- /PLY_Files/07_icosidodecahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 30 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 32 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0 0 1.05146 11 | 0.618034 0 0.850651 12 | 0.276393 0.552786 0.850651 13 | -0.618034 0 0.850651 14 | -0.276393 -0.552786 0.850651 15 | 1 0 0.32492 16 | 0.723607 -0.552786 0.525731 17 | -0.17082 0.894427 0.525731 18 | 0.447214 0.894427 0.32492 19 | -1 0 0.32492 20 | -0.723607 0.552786 0.525731 21 | 0.17082 -0.894427 0.525731 22 | -0.447214 -0.894427 0.32492 23 | 1 0 -0.32492 24 | 0.894427 0.552786 0 25 | 0.552786 -0.894427 0 26 | -0.552786 0.894427 0 27 | 0.447214 0.894427 -0.32492 28 | -1 0 -0.32492 29 | -0.894427 -0.552786 0 30 | -0.447214 -0.894427 -0.32492 31 | 0.618034 0 -0.850651 32 | 0.723607 -0.552786 -0.525731 33 | 0.17082 -0.894427 -0.525731 34 | -0.723607 0.552786 -0.525731 35 | -0.17082 0.894427 -0.525731 36 | 0.276393 0.552786 -0.850651 37 | -0.618034 0 -0.850651 38 | -0.276393 -0.552786 -0.850651 39 | 0 0 -1.05146 40 | 3 0 1 2 41 | 3 0 3 4 42 | 3 1 6 5 43 | 3 2 8 7 44 | 3 3 10 9 45 | 3 4 12 11 46 | 3 5 13 14 47 | 3 6 11 15 48 | 3 7 16 10 49 | 3 8 14 17 50 | 3 9 18 19 51 | 3 12 19 20 52 | 3 13 22 21 53 | 3 15 23 22 54 | 3 16 25 24 55 | 3 17 26 25 56 | 3 18 24 27 57 | 3 20 28 23 58 | 3 21 29 26 59 | 3 27 29 28 60 | 5 0 2 7 10 3 61 | 5 0 4 11 6 1 62 | 5 1 5 14 8 2 63 | 5 3 9 19 12 4 64 | 5 5 6 15 22 13 65 | 5 7 8 17 25 16 66 | 5 9 10 16 24 18 67 | 5 11 12 20 23 15 68 | 5 13 21 26 17 14 69 | 5 18 27 28 20 19 70 | 5 21 22 23 28 29 71 | 5 24 25 26 29 27 72 | -------------------------------------------------------------------------------- /PLY_Files/08_rhombicuboctahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 24 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 26 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0 0 1.07072 11 | 0.714813 0 0.797175 12 | -0.104682 0.707107 0.797175 13 | -0.684153 0.207107 0.797175 14 | -0.104682 -0.707107 0.797175 15 | 0.610132 0.707107 0.523628 16 | 1.04156 0.207107 0.136774 17 | 0.610132 -0.707107 0.523628 18 | -0.357407 1 0.136774 19 | -0.788835 -0.5 0.523628 20 | -0.936878 0.5 0.136774 21 | -0.357407 -1 0.136774 22 | 0.357407 1 -0.136774 23 | 0.936878 -0.5 -0.136774 24 | 0.788835 0.5 -0.523628 25 | 0.357407 -1 -0.136774 26 | -0.610132 0.707107 -0.523628 27 | -1.04156 -0.207107 -0.136774 28 | -0.610132 -0.707107 -0.523628 29 | 0.104682 0.707107 -0.797175 30 | 0.684153 -0.207107 -0.797175 31 | 0.104682 -0.707107 -0.797175 32 | -0.714813 0 -0.797175 33 | 0 0 -1.07072 34 | 3 0 2 3 35 | 3 1 6 5 36 | 3 4 9 11 37 | 3 7 15 13 38 | 3 8 16 10 39 | 3 12 14 19 40 | 3 17 22 18 41 | 3 20 21 23 42 | 4 0 1 5 2 43 | 4 0 3 9 4 44 | 4 0 4 7 1 45 | 4 1 7 13 6 46 | 4 2 5 12 8 47 | 4 2 8 10 3 48 | 4 3 10 17 9 49 | 4 4 11 15 7 50 | 4 5 6 14 12 51 | 4 6 13 20 14 52 | 4 8 12 19 16 53 | 4 9 17 18 11 54 | 4 10 16 22 17 55 | 4 11 18 21 15 56 | 4 13 15 21 20 57 | 4 14 20 23 19 58 | 4 16 19 23 22 59 | 4 18 22 23 21 60 | -------------------------------------------------------------------------------- /PLY_Files/09_snub_cube.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 24 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 38 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0 0 1.07736 11 | 0.744206 0 0.779019 12 | 0.312301 0.675508 0.779019 13 | -0.482096 0.566945 0.779019 14 | -0.716918 -0.199679 0.779019 15 | -0.119604 -0.734532 0.779019 16 | 0.624602 -0.734532 0.480673 17 | 1.05651 -0.199679 0.0680691 18 | 0.886713 0.566945 0.230276 19 | 0.26211 1.04277 0.0680691 20 | -0.532287 0.934211 0.0680691 21 | -1.00632 0.308242 0.230276 22 | -0.702082 -0.784071 0.230276 23 | 0.0272883 -1.07486 0.0680691 24 | 0.666727 -0.784071 -0.318466 25 | 0.821685 -0.0911155 -0.690829 26 | 0.651891 0.675508 -0.528621 27 | -0.119604 0.875187 -0.616812 28 | -0.809234 0.475829 -0.528621 29 | -0.99148 -0.276151 -0.318466 30 | -0.446741 -0.825648 -0.528621 31 | 0.192697 -0.534854 -0.915157 32 | 0.184631 0.258703 -1.02942 33 | -0.504999 -0.140654 -0.941226 34 | 3 0 1 2 35 | 3 0 2 3 36 | 3 0 3 4 37 | 3 0 4 5 38 | 3 1 6 7 39 | 3 1 7 8 40 | 3 1 8 2 41 | 3 2 8 9 42 | 3 3 10 11 43 | 3 3 11 4 44 | 3 4 12 5 45 | 3 5 12 13 46 | 3 5 13 6 47 | 3 6 13 14 48 | 3 6 14 7 49 | 3 7 14 15 50 | 3 8 16 9 51 | 3 9 16 17 52 | 3 9 17 10 53 | 3 10 17 18 54 | 3 10 18 11 55 | 3 11 18 19 56 | 3 12 19 20 57 | 3 12 20 13 58 | 3 14 21 15 59 | 3 15 21 22 60 | 3 15 22 16 61 | 3 16 22 17 62 | 3 18 23 19 63 | 3 19 23 20 64 | 3 20 23 21 65 | 3 21 23 22 66 | 4 0 5 6 1 67 | 4 2 9 10 3 68 | 4 4 11 19 12 69 | 4 7 15 16 8 70 | 4 13 20 21 14 71 | 4 17 22 23 18 72 | -------------------------------------------------------------------------------- /PLY_Files/10_truncated_cube.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 24 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 14 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0 0 1.04201 11 | 0.562169 0 0.877355 12 | -0.479842 0.292893 0.877355 13 | 0.256971 -0.5 0.877355 14 | 0.877355 0.292893 0.479842 15 | -0.901468 0.207107 0.479842 16 | -0.596271 0.707107 0.479842 17 | 0.140542 -0.914214 0.479842 18 | 1.0179 0.207107 -0.0823278 19 | 0.760926 0.707107 0.0823278 20 | -1.0179 -0.207107 0.0823278 21 | -0.281085 1 0.0823278 22 | -0.281085 -1 0.0823278 23 | 0.281085 -1 -0.0823278 24 | 0.901468 -0.207107 -0.479842 25 | 0.281085 1 -0.0823278 26 | -0.760926 -0.707107 -0.0823278 27 | -0.877355 -0.292893 -0.479842 28 | -0.140542 0.914214 -0.479842 29 | 0.596271 -0.707107 -0.479842 30 | 0.479842 -0.292893 -0.877355 31 | -0.562169 0 -0.877355 32 | -0.256971 0.5 -0.877355 33 | 0 0 -1.04201 34 | 3 0 3 1 35 | 3 2 6 5 36 | 3 4 8 9 37 | 3 7 12 13 38 | 3 10 17 16 39 | 3 11 15 18 40 | 3 14 19 20 41 | 3 21 22 23 42 | 8 0 1 4 9 15 11 6 2 43 | 8 0 2 5 10 16 12 7 3 44 | 8 1 3 7 13 19 14 8 4 45 | 8 5 6 11 18 22 21 17 10 46 | 8 8 14 20 23 22 18 15 9 47 | 8 12 16 17 21 23 20 19 13 48 | -------------------------------------------------------------------------------- /PLY_Files/11_truncated_cuboctahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 48 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 26 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0 0 1.02412 11 | 0.431479 0 0.928785 12 | -0.0210629 0.430964 0.928785 13 | -0.341058 -0.264298 0.928785 14 | 0.410416 0.430964 0.833453 15 | 0.700624 -0.264298 0.698633 16 | -0.383184 0.597631 0.738121 17 | -0.391908 -0.638071 0.698633 18 | -0.703179 -0.0976311 0.738121 19 | 0.658498 0.597631 0.507969 20 | 0.649774 -0.638071 0.468482 21 | 0.948706 -0.0976311 0.37315 22 | -0.463822 0.833333 0.37315 23 | -0.724242 0.333333 0.642789 24 | -0.75403 -0.471404 0.507969 25 | -0.122763 -0.902369 0.468482 26 | 0.57786 0.833333 0.142998 27 | 0.927643 0.333333 0.277818 28 | 0.897856 -0.471404 0.142998 29 | 0.308715 -0.902369 0.37315 30 | -0.80488 0.569036 0.277818 31 | -0.215739 1 0.047666 32 | -0.847005 -0.569036 0.0871538 33 | -0.215739 -1 0.047666 34 | 0.847005 0.569036 -0.0871538 35 | 0.215739 1 -0.047666 36 | 0.80488 -0.569036 -0.277818 37 | 0.215739 -1 -0.047666 38 | -0.897856 0.471404 -0.142998 39 | -0.308715 0.902369 -0.37315 40 | -0.927643 -0.333333 -0.277818 41 | -0.57786 -0.833333 -0.142998 42 | 0.75403 0.471404 -0.507969 43 | 0.122763 0.902369 -0.468482 44 | 0.724242 -0.333333 -0.642789 45 | 0.463822 -0.833333 -0.37315 46 | -0.948706 0.0976311 -0.37315 47 | -0.649774 0.638071 -0.468482 48 | -0.658498 -0.597631 -0.507969 49 | 0.703179 0.0976311 -0.738121 50 | 0.391908 0.638071 -0.698633 51 | 0.383184 -0.597631 -0.738121 52 | -0.700624 0.264298 -0.698633 53 | -0.410416 -0.430964 -0.833453 54 | 0.341058 0.264298 -0.928785 55 | 0.0210629 -0.430964 -0.928785 56 | -0.431479 0 -0.928785 57 | 0 0 -1.02412 58 | 4 0 1 4 2 59 | 4 3 8 14 7 60 | 4 5 10 18 11 61 | 4 6 12 20 13 62 | 4 9 17 24 16 63 | 4 15 23 27 19 64 | 4 21 25 33 29 65 | 4 22 30 38 31 66 | 4 26 35 41 34 67 | 4 28 37 42 36 68 | 4 32 39 44 40 69 | 4 43 46 47 45 70 | 6 0 2 6 13 8 3 71 | 6 1 5 11 17 9 4 72 | 6 7 14 22 31 23 15 73 | 6 10 19 27 35 26 18 74 | 6 12 21 29 37 28 20 75 | 6 16 24 32 40 33 25 76 | 6 30 36 42 46 43 38 77 | 6 34 41 45 47 44 39 78 | 8 0 3 7 15 19 10 5 1 79 | 8 2 4 9 16 25 21 12 6 80 | 8 8 13 20 28 36 30 22 14 81 | 8 11 18 26 34 39 32 24 17 82 | 8 23 31 38 43 45 41 35 27 83 | 8 29 33 40 44 47 46 42 37 84 | -------------------------------------------------------------------------------- /PLY_Files/12_truncated_dodecahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 60 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 32 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0 0 1.01449 11 | 0.336763 0 0.956959 12 | -0.290223 0.17082 0.956959 13 | 0.163468 -0.294427 0.956959 14 | 0.591433 0.17082 0.806354 15 | -0.596346 0.152786 0.806354 16 | -0.423052 0.447214 0.806354 17 | 0.137742 -0.6 0.806354 18 | 0.830204 0.152786 0.56267 19 | 0.666736 0.447214 0.620196 20 | -0.801441 -0.0472136 0.620196 21 | -0.347749 0.723607 0.620196 22 | -0.0673526 -0.8 0.620196 23 | 0.26941 -0.8 0.56267 24 | 0.961872 -0.0472136 0.318986 25 | 0.533907 0.723607 0.469591 26 | -0.827167 -0.352786 0.469591 27 | -0.959996 -0.0763932 0.318986 28 | -0.399202 0.876393 0.318986 29 | -0.0930789 0.894427 0.469591 30 | -0.373476 -0.818034 0.469591 31 | 0.508181 -0.818034 0.318986 32 | 0.936146 -0.352786 0.168381 33 | 1.01145 -0.0763932 -0.0177765 34 | 0.482454 0.876393 0.168381 35 | 0.243684 0.894427 0.412065 36 | -0.663699 -0.647214 0.412065 37 | -1.01145 0.0763932 0.0177765 38 | -0.557757 0.847214 0.0177765 39 | -0.532031 -0.847214 0.168381 40 | 0.557757 -0.847214 -0.0177765 41 | 0.762851 -0.647214 0.168381 42 | 0.959996 0.0763932 -0.318986 43 | 0.532031 0.847214 -0.168381 44 | -0.961872 0.0472136 -0.318986 45 | -0.936146 0.352786 -0.168381 46 | -0.762851 0.647214 -0.168381 47 | -0.508181 0.818034 -0.318986 48 | -0.482454 -0.876393 -0.168381 49 | 0.399202 -0.876393 -0.318986 50 | 0.801441 0.0472136 -0.620196 51 | 0.827167 0.352786 -0.469591 52 | 0.663699 0.647214 -0.412065 53 | 0.373476 0.818034 -0.469591 54 | -0.830204 -0.152786 -0.56267 55 | -0.26941 0.8 -0.56267 56 | -0.533907 -0.723607 -0.469591 57 | -0.243684 -0.894427 -0.412065 58 | 0.0930789 -0.894427 -0.469591 59 | 0.347749 -0.723607 -0.620196 60 | 0.596346 -0.152786 -0.806354 61 | 0.0673526 0.8 -0.620196 62 | -0.666736 -0.447214 -0.620196 63 | -0.591433 -0.17082 -0.806354 64 | -0.137742 0.6 -0.806354 65 | 0.423052 -0.447214 -0.806354 66 | 0.290223 -0.17082 -0.956959 67 | -0.336763 0 -0.956959 68 | -0.163468 0.294427 -0.956959 69 | 0 0 -1.01449 70 | 3 0 3 1 71 | 3 2 6 5 72 | 3 4 8 9 73 | 3 7 12 13 74 | 3 10 17 16 75 | 3 11 19 18 76 | 3 14 22 23 77 | 3 15 24 25 78 | 3 20 26 29 79 | 3 21 30 31 80 | 3 27 35 34 81 | 3 28 37 36 82 | 3 32 40 41 83 | 3 33 42 43 84 | 3 38 46 47 85 | 3 39 48 49 86 | 3 44 53 52 87 | 3 45 51 54 88 | 3 50 55 56 89 | 3 57 58 59 90 | 10 0 1 4 9 15 25 19 11 6 2 91 | 10 0 2 5 10 16 26 20 12 7 3 92 | 10 1 3 7 13 21 31 22 14 8 4 93 | 10 5 6 11 18 28 36 35 27 17 10 94 | 10 8 14 23 32 41 42 33 24 15 9 95 | 10 12 20 29 38 47 48 39 30 21 13 96 | 10 16 17 27 34 44 52 46 38 29 26 97 | 10 18 19 25 24 33 43 51 45 37 28 98 | 10 22 31 30 39 49 55 50 40 32 23 99 | 10 34 35 36 37 45 54 58 57 53 44 100 | 10 40 50 56 59 58 54 51 43 42 41 101 | 10 46 52 53 57 59 56 55 49 48 47 102 | -------------------------------------------------------------------------------- /PLY_Files/13_truncated_icosahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 60 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 32 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0 0 1.021 11 | 0.403548 0 0.937864 12 | -0.227464 0.333333 0.937864 13 | -0.147123 -0.375774 0.937864 14 | 0.579632 0.333333 0.771593 15 | 0.505832 -0.375774 0.803348 16 | -0.602051 0.290893 0.771593 17 | -0.0513806 0.666667 0.771593 18 | 0.165499 -0.608015 0.803348 19 | -0.52171 -0.418215 0.771593 20 | 0.858 0.290893 0.470806 21 | 0.352168 0.666667 0.688458 22 | 0.7842 -0.418215 0.502561 23 | -0.657475 0.597996 0.502561 24 | -0.749174 -0.0848813 0.688458 25 | -0.317142 0.830237 0.502561 26 | 0.103533 -0.882697 0.502561 27 | -0.583675 -0.692896 0.470806 28 | 0.802576 0.597996 0.201774 29 | 0.960284 -0.0848813 0.33629 30 | 0.489955 0.830237 0.33629 31 | 0.722234 -0.692896 0.201774 32 | -0.860021 0.529326 0.150394 33 | -0.95172 -0.153552 0.33629 34 | -0.179355 0.993808 0.150394 35 | 0.381901 -0.925138 0.201774 36 | -0.271054 -0.925138 0.33629 37 | -0.849436 -0.529326 0.201774 38 | 0.849436 0.529326 -0.201774 39 | 1.00714 -0.153552 -0.067258 40 | 0.224193 0.993808 0.067258 41 | 0.860021 -0.529326 -0.150394 42 | -0.722234 0.692896 -0.201774 43 | -1.00714 0.153552 0.067258 44 | -0.381901 0.925138 -0.201774 45 | 0.179355 -0.993808 -0.150394 46 | -0.224193 -0.993808 -0.067258 47 | -0.802576 -0.597996 -0.201774 48 | 0.583675 0.692896 -0.470806 49 | 0.95172 0.153552 -0.33629 50 | 0.271054 0.925138 -0.33629 51 | 0.657475 -0.597996 -0.502561 52 | -0.7842 0.418215 -0.502561 53 | -0.960284 0.0848813 -0.33629 54 | -0.103533 0.882697 -0.502561 55 | 0.317142 -0.830237 -0.502561 56 | -0.489955 -0.830237 -0.33629 57 | -0.858 -0.290893 -0.470806 58 | 0.52171 0.418215 -0.771593 59 | 0.749174 0.0848813 -0.688458 60 | 0.602051 -0.290893 -0.771593 61 | -0.505832 0.375774 -0.803348 62 | -0.165499 0.608015 -0.803348 63 | 0.0513806 -0.666667 -0.771593 64 | -0.352168 -0.666667 -0.688458 65 | -0.579632 -0.333333 -0.771593 66 | 0.147123 0.375774 -0.937864 67 | 0.227464 -0.333333 -0.937864 68 | -0.403548 0 -0.937864 69 | 0 0 -1.021 70 | 5 0 3 8 5 1 71 | 5 2 7 15 13 6 72 | 5 4 10 18 20 11 73 | 5 9 14 23 27 17 74 | 5 12 21 31 29 19 75 | 5 16 26 36 35 25 76 | 5 22 32 42 43 33 77 | 5 24 30 40 44 34 78 | 5 28 39 49 48 38 79 | 5 37 47 55 54 46 80 | 5 41 45 53 57 50 81 | 5 51 52 56 59 58 82 | 6 0 1 4 11 7 2 83 | 6 0 2 6 14 9 3 84 | 6 1 5 12 19 10 4 85 | 6 3 9 17 26 16 8 86 | 6 5 8 16 25 21 12 87 | 6 6 13 22 33 23 14 88 | 6 7 11 20 30 24 15 89 | 6 10 19 29 39 28 18 90 | 6 13 15 24 34 32 22 91 | 6 17 27 37 46 36 26 92 | 6 18 28 38 40 30 20 93 | 6 21 25 35 45 41 31 94 | 6 23 33 43 47 37 27 95 | 6 29 31 41 50 49 39 96 | 6 32 34 44 52 51 42 97 | 6 35 36 46 54 53 45 98 | 6 38 48 56 52 44 40 99 | 6 42 51 58 55 47 43 100 | 6 48 49 50 57 59 56 101 | 6 53 54 55 58 59 57 102 | -------------------------------------------------------------------------------- /PLY_Files/14_truncated_octahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 24 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 14 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0 0 1.05409 11 | 0.632456 0 0.843274 12 | -0.421637 0.471404 0.843274 13 | -0.0702728 -0.628539 0.843274 14 | 0.843274 0.471404 0.421637 15 | 0.562183 -0.628539 0.632456 16 | -0.913547 0.31427 0.421637 17 | -0.210818 0.942809 0.421637 18 | -0.562183 -0.785674 0.421637 19 | 0.98382 0.31427 -0.210818 20 | 0.421637 0.942809 0.210818 21 | 0.702728 -0.785674 0 22 | -0.702728 0.785674 0 23 | -0.98382 -0.31427 0.210818 24 | -0.421637 -0.942809 -0.210818 25 | 0.562183 0.785674 -0.421637 26 | 0.913547 -0.31427 -0.421637 27 | 0.210818 -0.942809 -0.421637 28 | -0.562183 0.628539 -0.632456 29 | -0.843274 -0.471404 -0.421637 30 | 0.0702728 0.628539 -0.843274 31 | 0.421637 -0.471404 -0.843274 32 | -0.632456 0 -0.843274 33 | 0 0 -1.05409 34 | 4 0 3 5 1 35 | 4 2 7 12 6 36 | 4 4 9 15 10 37 | 4 8 13 19 14 38 | 4 11 17 21 16 39 | 4 18 20 23 22 40 | 6 0 1 4 10 7 2 41 | 6 0 2 6 13 8 3 42 | 6 1 5 11 16 9 4 43 | 6 3 8 14 17 11 5 44 | 6 6 12 18 22 19 13 45 | 6 7 10 15 20 18 12 46 | 6 9 16 21 23 20 15 47 | 6 14 19 22 23 21 17 48 | -------------------------------------------------------------------------------- /PLY_Files/15_truncated_tetrahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 12 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 8 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0 0 1.10554 11 | 0.852803 0 0.703526 12 | -0.710669 0.471404 0.703526 13 | 0.331646 -0.785674 0.703526 14 | 0.994937 0.471404 -0.100504 15 | -1.08969 0.157135 -0.100504 16 | -0.568535 0.942809 -0.100504 17 | -0.0473779 -1.09994 -0.100504 18 | 0.615913 0.157135 -0.904534 19 | 0.284268 0.942809 -0.502519 20 | -0.758047 -0.628539 -0.502519 21 | 0.0947559 -0.628539 -0.904534 22 | 3 0 3 1 23 | 3 2 6 5 24 | 3 4 8 9 25 | 3 7 10 11 26 | 6 0 1 4 9 6 2 27 | 6 0 2 5 10 7 3 28 | 6 1 3 7 11 8 4 29 | 6 5 6 9 8 11 10 30 | -------------------------------------------------------------------------------- /PLY_Files/16_gyroelongated_pentagonal_pyramid_(J11).ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 11 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 16 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | -0.684500 -0.403400 0.595200 11 | -0.633900 0.589400 0.486200 12 | -0.475500 -0.822300 -0.288500 13 | -0.393500 0.784000 -0.464800 14 | -0.295600 -0.088500 -0.943600 15 | 0.127800 0.092500 0.902000 16 | 0.225700 -0.780000 0.423200 17 | 0.307700 0.826300 0.246900 18 | 0.466100 -0.585400 -0.527800 19 | 0.516700 0.407400 -0.636800 20 | 0.839000 -0.020000 0.208000 21 | 3 6 2 8 22 | 3 8 2 4 23 | 3 8 4 9 24 | 3 9 4 3 25 | 3 9 3 7 26 | 3 7 3 1 27 | 3 7 1 5 28 | 3 5 1 0 29 | 3 5 0 6 30 | 3 6 0 2 31 | 3 6 8 10 32 | 3 8 9 10 33 | 3 9 7 10 34 | 3 7 5 10 35 | 3 5 6 10 36 | 5 1 3 4 2 0 37 | -------------------------------------------------------------------------------- /PLY_Files/17_triangular_bipyramid_(J12).ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 5 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 6 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | -0.417000 0.166700 0.362900 11 | -0.128300 -0.333300 -0.453600 12 | -0.128300 0.666700 -0.453600 13 | 0.128300 -0.666700 0.453600 14 | 0.545300 0.166700 0.090700 15 | 3 1 3 0 16 | 3 3 4 0 17 | 3 3 1 4 18 | 3 0 2 1 19 | 3 0 4 2 20 | 3 2 4 1 21 | -------------------------------------------------------------------------------- /PLY_Files/18_pentagonal_bipyramid_(J13).ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 7 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 10 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | -0.794100 0.302600 -0.037700 11 | -0.494400 -0.498800 0.480000 12 | -0.096600 -0.305400 -0.416900 13 | 0.003600 0.685800 -0.503300 14 | 0.096600 0.305400 0.416900 15 | 0.488600 -0.610900 0.334300 16 | 0.796300 0.121200 -0.273400 17 | 3 3 2 0 18 | 3 2 1 0 19 | 3 2 5 1 20 | 3 0 4 3 21 | 3 0 1 4 22 | 3 4 1 5 23 | 3 2 3 6 24 | 3 3 4 6 25 | 3 5 2 6 26 | 3 4 5 6 27 | -------------------------------------------------------------------------------- /PLY_Files/19_gyroelongated_square_bipyramid_(J17).ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 10 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 16 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | -0.693300 0.433100 0.091900 11 | -0.602400 -0.504400 -0.243800 12 | -0.338800 -0.281600 0.694800 13 | -0.197900 0.252100 -0.757700 14 | -0.030900 1.098600 -0.252100 15 | 0.030900 -1.098600 0.252100 16 | 0.174900 0.567200 0.569600 17 | 0.361800 -0.537700 -0.506700 18 | 0.625500 -0.314900 0.431800 19 | 0.670300 0.386100 -0.279900 20 | 3 6 8 9 21 | 3 9 8 7 22 | 3 9 7 3 23 | 3 3 7 1 24 | 3 3 1 0 25 | 3 0 1 2 26 | 3 0 2 6 27 | 3 6 2 8 28 | 3 6 9 4 29 | 3 9 3 4 30 | 3 3 0 4 31 | 3 0 6 4 32 | 3 7 8 5 33 | 3 1 7 5 34 | 3 2 1 5 35 | 3 8 2 5 36 | -------------------------------------------------------------------------------- /PLY_Files/20_square_gyrobicupola_(J29).ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 16 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 18 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | -1.285600 -0.090100 -0.215100 11 | -1.004100 0.835100 0.039100 12 | -0.814000 -0.962600 -0.343300 13 | -0.718100 -0.464300 0.518400 14 | -0.567500 0.374200 -0.733500 15 | -0.436600 0.461000 0.772600 16 | -0.134400 1.271200 0.270400 17 | -0.095900 -0.498300 -0.861700 18 | 0.134400 -1.271200 -0.270400 19 | 0.230300 -0.772900 0.591300 20 | 0.302200 0.810200 -0.502200 21 | 0.511800 0.152400 0.845500 22 | 0.773800 -0.062200 -0.630400 23 | 0.814000 0.962600 0.343300 24 | 1.004100 -0.835100 -0.039100 25 | 1.285600 0.090100 0.215100 26 | 3 4 0 1 27 | 3 10 6 13 28 | 3 12 15 14 29 | 3 7 8 2 30 | 3 3 0 2 31 | 3 9 8 14 32 | 3 11 15 13 33 | 3 5 6 1 34 | 4 7 4 10 12 35 | 4 4 7 2 0 36 | 4 10 4 1 6 37 | 4 12 10 13 15 38 | 4 7 12 14 8 39 | 4 5 3 9 11 40 | 4 3 5 1 0 41 | 4 9 3 2 8 42 | 4 11 9 14 15 43 | 4 5 11 13 6 44 | -------------------------------------------------------------------------------- /PLY_Files/21_pentagonal_orthocupolarotunda_(J32).ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 25 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 27 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | -1.604100 0.399600 -0.032800 11 | -1.404400 0.024100 0.872300 12 | -1.246000 0.509900 -0.959900 13 | -1.074100 -0.335900 -0.454900 14 | -1.001200 0.895300 0.592400 15 | -0.874500 -0.711500 0.450200 16 | -0.723200 -0.473300 1.409500 17 | -0.466800 0.312800 -1.555000 18 | -0.421700 1.073800 -0.907800 19 | -0.295000 -0.533000 -1.050000 20 | -0.270500 1.312000 0.051600 21 | -0.070800 0.936500 0.956600 22 | 0.028000 -1.140600 0.414400 23 | 0.101000 0.090600 1.461700 24 | 0.179300 -0.902400 1.373800 25 | 0.386200 -1.030300 -0.512700 26 | 0.435700 -0.116300 -1.590700 27 | 0.508600 1.114900 -0.543500 28 | 0.831700 0.507300 0.920900 29 | 0.958400 -1.099500 0.778700 30 | 1.038600 0.379400 -0.965600 31 | 1.116900 -0.613700 -1.053500 32 | 1.189800 0.617600 -0.006200 33 | 1.316600 -0.989200 -0.148400 34 | 1.361600 -0.228200 0.498800 35 | 3 3 0 2 36 | 3 9 7 16 37 | 3 15 21 23 38 | 3 12 19 14 39 | 3 5 6 1 40 | 3 18 24 22 41 | 3 24 19 23 42 | 3 22 20 17 43 | 3 20 21 16 44 | 3 17 8 10 45 | 3 8 7 2 46 | 3 10 4 11 47 | 3 4 0 1 48 | 3 11 13 18 49 | 3 13 6 14 50 | 4 3 5 1 0 51 | 4 9 3 2 7 52 | 4 15 9 16 21 53 | 4 12 15 23 19 54 | 4 5 12 14 6 55 | 5 5 3 9 15 12 56 | 5 18 22 17 10 11 57 | 5 18 13 14 19 24 58 | 5 22 24 23 21 20 59 | 5 17 20 16 7 8 60 | 5 10 8 2 0 4 61 | 5 11 4 1 6 13 62 | -------------------------------------------------------------------------------- /PLY_Files/22_pentagonal_orthobirotunda_(J34).ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 30 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 32 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | -1.579200 0.034300 0.350500 11 | -1.454000 -0.545000 -0.454900 12 | -1.295800 0.962700 0.110400 13 | -1.259500 -0.907300 0.456700 14 | -1.101300 0.600500 1.022000 15 | -1.093100 0.025400 -1.192700 16 | -0.995300 0.957200 -0.843300 17 | -0.847800 -1.333300 -0.348900 18 | -0.584000 -0.922900 1.193800 19 | -0.517300 1.523400 -0.171800 20 | -0.486200 0.008900 1.543200 21 | -0.314600 0.586100 -1.475000 22 | -0.263800 -0.410300 -1.542800 23 | -0.202700 0.937400 1.303200 24 | -0.112200 -1.250000 -1.021200 25 | 0.082200 -1.612200 -0.109700 26 | 0.158200 1.507800 0.565400 27 | 0.245300 -1.358600 0.843800 28 | 0.314600 -0.586100 1.475000 29 | 0.458700 1.502300 -0.388400 30 | 0.584000 0.922900 -1.193800 31 | 0.666200 -0.689300 -1.303500 32 | 0.773300 0.916200 1.086600 33 | 0.980900 -1.275400 0.171500 34 | 1.093100 -0.025400 1.192700 35 | 1.190200 0.134700 -1.087800 36 | 1.259500 0.907300 -0.456700 37 | 1.341800 -0.705000 -0.566300 38 | 1.454000 0.545000 0.454900 39 | 1.504800 -0.451400 0.387100 40 | 3 15 7 14 41 | 3 7 3 1 42 | 3 14 12 21 43 | 3 12 5 11 44 | 3 21 25 27 45 | 3 25 20 26 46 | 3 27 29 23 47 | 3 29 28 24 48 | 3 23 17 15 49 | 3 17 18 8 50 | 3 4 10 13 51 | 3 10 8 18 52 | 3 13 22 16 53 | 3 22 24 28 54 | 3 16 19 9 55 | 3 19 26 20 56 | 3 9 6 2 57 | 3 6 11 5 58 | 3 2 0 4 59 | 3 0 1 3 60 | 5 15 14 21 27 23 61 | 5 15 17 8 3 7 62 | 5 14 7 1 5 12 63 | 5 21 12 11 20 25 64 | 5 27 25 26 28 29 65 | 5 23 29 24 18 17 66 | 5 4 13 16 9 2 67 | 5 4 0 3 8 10 68 | 5 13 10 18 24 22 69 | 5 16 22 28 26 19 70 | 5 9 19 20 11 6 71 | 5 2 6 5 1 0 72 | -------------------------------------------------------------------------------- /PLY_Files/23_elongated_pentagonal_gyrobicupola_(J39).ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 30 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 32 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | -1.593200 0.343700 -0.459800 11 | -1.567100 0.347800 0.539800 12 | -1.494500 -0.651400 -0.458400 13 | -1.468400 -0.647300 0.541300 14 | -1.088400 1.206800 -0.476600 15 | -1.062200 1.210800 0.523100 16 | -0.873100 -0.088100 -1.002900 17 | -0.830000 -1.398500 -0.472700 18 | -0.803800 -1.394400 0.526900 19 | -0.707100 0.433800 1.042800 20 | -0.608400 -0.561300 1.044300 21 | -0.368200 0.775000 -1.019600 22 | -0.208500 -0.835200 -1.017200 23 | -0.172800 1.608100 -0.502200 24 | -0.146600 1.612200 0.497500 25 | 0.146600 -1.612200 -0.497500 26 | 0.172800 -1.608100 0.502200 27 | 0.208500 0.835200 1.017200 28 | 0.368200 -0.775000 1.019600 29 | 0.608400 0.561300 -1.044300 30 | 0.707100 -0.433800 -1.042800 31 | 0.803800 1.394400 -0.526900 32 | 0.830000 1.398500 0.472700 33 | 0.873100 0.088100 1.002900 34 | 1.062200 -1.210800 -0.523100 35 | 1.088400 -1.206800 0.476600 36 | 1.468400 0.647300 -0.541300 37 | 1.494500 0.651400 0.458400 38 | 1.567100 -0.347800 -0.539800 39 | 1.593200 -0.343700 0.459800 40 | 3 11 4 13 41 | 3 19 21 26 42 | 3 20 28 24 43 | 3 12 15 7 44 | 3 6 2 0 45 | 3 9 5 1 46 | 3 10 3 8 47 | 3 18 16 25 48 | 3 23 29 27 49 | 3 17 22 14 50 | 4 11 6 0 4 51 | 4 19 11 13 21 52 | 4 20 19 26 28 53 | 4 12 20 24 15 54 | 4 6 12 7 2 55 | 4 9 17 14 5 56 | 4 10 9 1 3 57 | 4 18 10 8 16 58 | 4 23 18 25 29 59 | 4 17 23 27 22 60 | 4 24 25 16 15 61 | 4 15 16 8 7 62 | 4 7 8 3 2 63 | 4 2 3 1 0 64 | 4 0 1 5 4 65 | 4 4 5 14 13 66 | 4 13 14 22 21 67 | 4 21 22 27 26 68 | 4 26 27 29 28 69 | 4 28 29 25 24 70 | 5 6 11 19 20 12 71 | 5 17 9 10 18 23 72 | -------------------------------------------------------------------------------- /PLY_Files/24_elongated_pentagonal_gyrobirotunda_(J43).ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 40 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 42 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | -2.035500 -0.316000 -0.033800 11 | -1.879800 0.341500 -0.770900 12 | -1.811900 0.634300 0.182900 13 | -1.648900 -1.194000 -0.316000 14 | -1.581100 -0.901200 0.637800 15 | -1.396900 -0.130100 -1.508700 16 | -1.254200 -1.079100 -1.227600 17 | -1.219200 0.636400 0.988300 18 | -1.173200 0.820200 -1.292100 19 | -1.076500 -0.312600 1.269400 20 | -1.063400 1.293900 0.251100 21 | -0.799700 -1.664300 -0.556000 22 | -0.689900 -1.190600 0.987200 23 | -0.668700 1.408800 -0.660500 24 | -0.547600 -0.600400 -1.748800 25 | -0.343500 0.889800 1.399400 26 | -0.207000 -1.662200 0.249400 27 | -0.200900 -0.059200 1.680500 28 | -0.187700 1.547300 0.662200 29 | -0.185800 0.937200 -1.398300 30 | 0.185800 -0.937200 1.398300 31 | 0.187700 -1.547300 -0.662200 32 | 0.200900 0.059200 -1.680500 33 | 0.207000 1.662200 -0.249400 34 | 0.343500 -0.889800 -1.399400 35 | 0.547600 0.600400 1.748800 36 | 0.668700 -1.408800 0.660500 37 | 0.689900 1.190600 -0.987200 38 | 0.799700 1.664300 0.556000 39 | 1.063400 -1.293900 -0.251100 40 | 1.076500 0.312600 -1.269400 41 | 1.173200 -0.820200 1.292100 42 | 1.219200 -0.636400 -0.988300 43 | 1.254200 1.079100 1.227600 44 | 1.396900 0.130100 1.508700 45 | 1.581100 0.901200 -0.637800 46 | 1.648900 1.194000 0.316000 47 | 1.811900 -0.634300 -0.182900 48 | 1.879800 -0.341500 0.770900 49 | 2.035500 0.316000 0.033800 50 | 3 0 2 1 51 | 3 2 7 10 52 | 3 1 8 5 53 | 3 8 13 19 54 | 3 5 14 6 55 | 3 14 22 24 56 | 3 6 11 3 57 | 3 11 21 16 58 | 3 3 4 0 59 | 3 4 12 9 60 | 3 33 25 34 61 | 3 25 15 17 62 | 3 34 31 38 63 | 3 31 20 26 64 | 3 38 37 39 65 | 3 37 29 32 66 | 3 39 35 36 67 | 3 35 30 27 68 | 3 36 28 33 69 | 3 28 23 18 70 | 4 24 32 29 21 71 | 4 21 29 26 16 72 | 4 16 26 20 12 73 | 4 12 20 17 9 74 | 4 9 17 15 7 75 | 4 7 15 18 10 76 | 4 10 18 23 13 77 | 4 13 23 27 19 78 | 4 19 27 30 22 79 | 4 22 30 32 24 80 | 5 0 1 5 6 3 81 | 5 0 4 9 7 2 82 | 5 1 2 10 13 8 83 | 5 5 8 19 22 14 84 | 5 6 14 24 21 11 85 | 5 3 11 16 12 4 86 | 5 33 34 38 39 36 87 | 5 33 28 18 15 25 88 | 5 34 25 17 20 31 89 | 5 38 31 26 29 37 90 | 5 39 37 32 30 35 91 | 5 36 35 27 23 28 92 | -------------------------------------------------------------------------------- /PLY_Files/25_gyroelongated_square_bicupola_(J45).ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 24 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 34 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | -1.342600 -0.293700 0.058400 11 | -1.138700 0.568600 0.521800 12 | -1.059000 0.107300 -0.812700 13 | -0.929000 -0.301000 0.968800 14 | -0.876400 -0.857500 -0.623400 15 | -0.855100 0.969600 -0.349300 16 | -0.787000 -1.072800 0.349000 17 | -0.410300 0.520700 1.205300 18 | -0.384200 1.224400 0.495300 19 | -0.195800 0.172300 -1.313500 20 | -0.093600 -0.846800 1.033200 21 | -0.067600 -1.342700 -0.291000 22 | -0.013300 -0.792500 -1.124200 23 | 0.008000 1.034700 -0.850100 24 | 0.425100 -0.025200 1.269700 25 | 0.465100 0.910800 0.919900 26 | 0.478900 1.289500 -0.005500 27 | 0.625800 -1.116800 0.393200 28 | 0.741200 -0.136700 -1.150700 29 | 0.807800 -0.952600 -0.576400 30 | 0.945100 0.725700 -0.687300 31 | 1.144500 -0.295100 0.629600 32 | 1.184500 0.640900 0.279900 33 | 1.326400 -0.131000 -0.339900 34 | 3 13 16 20 35 | 3 9 18 12 36 | 3 2 4 0 37 | 3 5 1 8 38 | 3 14 15 7 39 | 3 10 3 6 40 | 3 17 11 19 41 | 3 21 23 22 42 | 3 12 11 4 43 | 3 4 11 6 44 | 3 4 6 0 45 | 3 0 6 3 46 | 3 0 3 1 47 | 3 1 3 7 48 | 3 1 7 8 49 | 3 8 7 15 50 | 3 8 15 16 51 | 3 16 15 22 52 | 3 16 22 20 53 | 3 20 22 23 54 | 3 20 23 18 55 | 3 18 23 19 56 | 3 18 19 12 57 | 3 12 19 11 58 | 4 5 13 9 2 59 | 4 13 5 8 16 60 | 4 9 13 20 18 61 | 4 2 9 12 4 62 | 4 5 2 0 1 63 | 4 21 14 10 17 64 | 4 14 21 22 15 65 | 4 10 14 7 3 66 | 4 17 10 6 11 67 | 4 21 17 19 23 68 | -------------------------------------------------------------------------------- /PLY_Files/26_rhombic_dodecahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 14 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 12 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.5 0.353553 0.866025 11 | -0.5 0.707107 0.866025 12 | -0.5 -0.353553 0.866025 13 | 0.5 -0.707107 0.866025 14 | 1 -0.353553 0 15 | 1 0.707107 0 16 | 0 1.06066 0 17 | -1 0.353553 0 18 | -1 -0.707107 0 19 | 0 -1.06066 0 20 | 0.5 -0.707107 -0.866025 21 | 0.5 0.353553 -0.866025 22 | -0.5 0.707107 -0.866025 23 | -0.5 -0.353553 -0.866025 24 | 4 3 0 1 2 25 | 4 3 4 5 0 26 | 4 0 5 6 1 27 | 4 1 7 8 2 28 | 4 2 8 9 3 29 | 4 5 4 10 11 30 | 4 4 3 9 10 31 | 4 1 6 12 7 32 | 4 6 5 11 12 33 | 4 8 7 12 13 34 | 4 9 8 13 10 35 | 4 10 13 12 11 36 | -------------------------------------------------------------------------------- /PLY_Files/27_rhombic_triacontahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 32 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 30 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.309017 0.190983 0.951056 11 | -0.309017 0.5 0.951056 12 | -0.309017 -0.190983 0.951056 13 | 0.309017 -0.5 0.951056 14 | 0.809017 -0.190983 0.587785 15 | 0.809017 0.5 0.587785 16 | 0.190983 0.809017 0.587785 17 | -0.809017 0.190983 0.587785 18 | -0.809017 -0.5 0.587785 19 | -0.190983 -0.809017 0.587785 20 | 1 -0.5 0 21 | 1 0.190983 0 22 | 0.5 -0.809017 0.363271 23 | 0 1.11803 0 24 | -0.5 0.809017 0.363271 25 | 0.618034 0.809017 0 26 | -1 0.5 0 27 | -1 -0.190983 0 28 | 0 -1.11803 0 29 | -0.618034 -0.809017 0 30 | 0.809017 -0.190983 -0.587785 31 | 0.809017 0.5 -0.587785 32 | 0.5 -0.809017 -0.363271 33 | -0.5 0.809017 -0.363271 34 | 0.190983 0.809017 -0.587785 35 | -0.809017 0.190983 -0.587785 36 | -0.809017 -0.5 -0.587785 37 | -0.190983 -0.809017 -0.587785 38 | 0.309017 -0.5 -0.951056 39 | 0.309017 0.190983 -0.951056 40 | -0.309017 0.5 -0.951056 41 | -0.309017 -0.190983 -0.951056 42 | 4 3 0 1 2 43 | 4 3 4 5 0 44 | 4 0 5 6 1 45 | 4 1 7 8 2 46 | 4 2 8 9 3 47 | 4 5 4 10 11 48 | 4 4 3 12 10 49 | 4 1 6 13 14 50 | 4 6 5 15 13 51 | 4 8 7 16 17 52 | 4 7 1 14 16 53 | 4 3 9 18 12 54 | 4 9 8 19 18 55 | 4 10 20 21 11 56 | 4 11 21 15 5 57 | 4 12 18 22 10 58 | 4 13 23 16 14 59 | 4 15 21 24 13 60 | 4 16 25 26 17 61 | 4 17 26 19 8 62 | 4 19 26 27 18 63 | 4 21 20 28 29 64 | 4 20 10 22 28 65 | 4 22 18 27 28 66 | 4 16 23 30 25 67 | 4 23 13 24 30 68 | 4 24 21 29 30 69 | 4 26 25 30 31 70 | 4 27 26 31 28 71 | 4 28 31 30 29 72 | -------------------------------------------------------------------------------- /PLY_Files/28_deltoidal_icositetrahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 26 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 24 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.357407 0.414214 0.933949 11 | -0.276439 0.320377 0.933949 12 | -0.462089 -0.292893 0.933949 13 | 0.357407 -0.414214 0.933949 14 | 0.967538 -0.292893 0.386854 15 | 0.829319 0.320377 0.510794 16 | 0.148043 1 0.386854 17 | -0.610132 0.707107 0.547095 18 | -1.0109 0 0.386854 19 | -0.438374 -0.773459 0.510794 20 | 0.148043 -1 0.386854 21 | 0.819495 0.707107 0 22 | 1.0109 0 -0.386854 23 | 0.667384 -0.773459 0.0876383 24 | -0.148043 1 -0.386854 25 | -0.667384 0.773459 -0.0876383 26 | -0.819495 -0.707107 0 27 | -0.967538 0.292893 -0.386854 28 | -0.148043 -1 -0.386854 29 | 0.438374 0.773459 -0.510794 30 | 0.610132 -0.707107 -0.547095 31 | 0.462089 0.292893 -0.933949 32 | -0.357407 0.414214 -0.933949 33 | -0.829319 -0.320377 -0.510794 34 | -0.357407 -0.414214 -0.933949 35 | 0.276439 -0.320377 -0.933949 36 | 4 3 0 1 2 37 | 4 3 4 5 0 38 | 4 0 6 7 1 39 | 4 1 7 8 2 40 | 4 2 9 10 3 41 | 4 0 5 11 6 42 | 4 5 4 12 11 43 | 4 4 3 10 13 44 | 4 7 6 14 15 45 | 4 2 8 16 9 46 | 4 8 7 15 17 47 | 4 10 9 16 18 48 | 4 11 19 14 6 49 | 4 4 13 20 12 50 | 4 12 21 19 11 51 | 4 10 18 20 13 52 | 4 14 22 17 15 53 | 4 8 17 23 16 54 | 4 16 23 24 18 55 | 4 14 19 21 22 56 | 4 12 20 25 21 57 | 4 20 18 24 25 58 | 4 17 22 24 23 59 | 4 21 25 24 22 60 | -------------------------------------------------------------------------------- /PLY_Files/29_pentagonal_icositetrahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 38 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 24 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.372103 0.237915 0.928191 11 | -0.0598019 0.437593 0.928191 12 | -0.422294 0.129352 0.928191 13 | -0.294624 -0.32903 0.928191 14 | 0.372103 -0.437593 0.928191 15 | 0.854199 -0.32903 0.467639 16 | 0.946515 0.129352 0.379449 17 | 0.684404 0.437593 0.629846 18 | 0.51461 0.80486 0.379449 19 | -0.131055 0.95898 0.504647 20 | -0.711693 0.637272 0.379449 21 | -0.77672 0.237915 0.629846 22 | -1.01777 -0.283472 0.274371 23 | -0.541898 -0.605181 0.629846 24 | -0.279788 -0.913423 0.379449 25 | 0.187472 -0.895975 0.467639 26 | 0.464419 -0.913423 0.0811035 27 | 0.826911 -0.605181 0.0811035 28 | 0.896324 -0.378569 -0.331501 29 | 1.01777 0.283472 -0.274371 30 | 0.634214 0.80486 -0.0811035 31 | 0.279788 0.913423 -0.379449 32 | -0.137281 1.00454 -0.169294 33 | -0.51461 0.80486 -0.379449 34 | -0.826911 0.605181 -0.0811035 35 | -0.988639 0.17889 -0.217242 36 | -0.753817 -0.664205 -0.217242 37 | -0.395006 -0.945514 -0.0811035 38 | 0.131055 -0.95898 -0.504647 39 | 0.592089 -0.496618 -0.677794 40 | 0.422294 -0.129352 -0.928191 41 | 0.584023 0.296939 -0.792053 42 | 0.252499 0.637272 -0.765984 43 | -0.372103 0.437593 -0.928191 44 | -0.812075 0.0207885 -0.629846 45 | -0.684404 -0.437593 -0.629846 46 | -0.267336 -0.528709 -0.840001 47 | -0.0449656 -0.146799 -1.01638 48 | 5 4 0 1 2 3 49 | 5 0 4 5 6 7 50 | 5 1 0 7 8 9 51 | 5 2 1 9 10 11 52 | 5 3 2 11 12 13 53 | 5 4 3 13 14 15 54 | 5 5 4 15 16 17 55 | 5 6 5 17 18 19 56 | 5 7 6 19 20 8 57 | 5 9 8 20 21 22 58 | 5 10 9 22 23 24 59 | 5 11 10 24 25 12 60 | 5 13 12 26 27 14 61 | 5 15 14 27 28 16 62 | 5 17 16 28 29 18 63 | 5 19 18 29 30 31 64 | 5 20 19 31 32 21 65 | 5 22 21 32 33 23 66 | 5 24 23 33 34 25 67 | 5 12 25 34 35 26 68 | 5 27 26 35 36 28 69 | 5 29 28 36 37 30 70 | 5 31 30 37 33 32 71 | 5 34 33 37 36 35 72 | -------------------------------------------------------------------------------- /PLY_Files/30_triakis_octahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 14 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 24 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.281085 1 0.959683 11 | -0.760926 -0.707107 0.959683 12 | 0.281085 -0.171573 0.959683 13 | 1.15844 -0.707107 0.397514 14 | -0.678598 0.414214 0.630372 15 | 0.911457 0.414214 0.164656 16 | -1.15844 0.707107 -0.397514 17 | 0.0482265 -1 0.164656 18 | 0.760926 0.707107 -0.959683 19 | -0.911457 -0.414214 -0.164656 20 | -0.0482265 1 -0.164656 21 | -0.281085 -1 -0.959683 22 | 0.678598 -0.414214 -0.630372 23 | -0.281085 0.171573 -0.959683 24 | 3 2 0 1 25 | 3 2 3 0 26 | 3 0 4 1 27 | 3 1 3 2 28 | 3 0 3 5 29 | 3 1 4 6 30 | 3 4 0 6 31 | 3 3 1 7 32 | 3 3 8 5 33 | 3 5 8 0 34 | 3 6 9 1 35 | 3 0 10 6 36 | 3 1 11 7 37 | 3 7 11 3 38 | 3 8 3 12 39 | 3 0 8 10 40 | 3 1 9 11 41 | 3 9 6 11 42 | 3 6 10 8 43 | 3 3 11 12 44 | 3 12 11 8 45 | 3 6 13 11 46 | 3 8 13 6 47 | 3 8 11 13 48 | -------------------------------------------------------------------------------- /PLY_Files/31_disdyakis_dodecahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 26 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 48 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.215739 0.226541 0.976451 11 | -0.424251 0.195262 0.976451 12 | 0.215739 -0.630602 0.976451 13 | 0.796155 0.195262 0.706811 14 | 0.136046 1 0.615752 15 | -0.575644 -0.38673 0.755245 16 | 0.840257 -0.38673 0.442412 17 | -0.624518 0.613271 0.534039 18 | -0.568077 -0.861929 0.325484 19 | -1.15439 0 0.255053 20 | 0.791384 0.613271 0.221206 21 | 0.652329 -0.861929 0.0558442 22 | 1.15439 0 -0.255053 23 | -0.652329 0.861929 -0.0558442 24 | 0.0488738 -1 0.221206 25 | 0.568077 0.861929 -0.325484 26 | -0.0488738 1 -0.221206 27 | -0.791384 -0.613271 -0.221206 28 | -0.136046 -1 -0.615752 29 | 0.624518 -0.613271 -0.534039 30 | -0.840257 0.38673 -0.442412 31 | -0.215739 0.630602 -0.976451 32 | -0.796155 -0.195262 -0.706811 33 | 0.575644 0.38673 -0.755245 34 | 0.424251 -0.195262 -0.976451 35 | -0.215739 -0.226541 -0.976451 36 | 3 2 0 1 37 | 3 2 3 0 38 | 3 0 4 1 39 | 3 1 5 2 40 | 3 0 3 4 41 | 3 3 2 6 42 | 3 1 4 7 43 | 3 2 5 8 44 | 3 5 1 9 45 | 3 3 10 4 46 | 3 2 11 6 47 | 3 6 12 3 48 | 3 4 13 7 49 | 3 7 9 1 50 | 3 5 9 8 51 | 3 8 14 2 52 | 3 4 10 15 53 | 3 10 3 12 54 | 3 6 11 12 55 | 3 11 2 14 56 | 3 7 13 9 57 | 3 13 4 16 58 | 3 8 9 17 59 | 3 14 8 18 60 | 3 10 12 15 61 | 3 15 16 4 62 | 3 11 19 12 63 | 3 14 18 11 64 | 3 13 20 9 65 | 3 16 21 13 66 | 3 9 22 17 67 | 3 17 18 8 68 | 3 15 12 23 69 | 3 16 15 21 70 | 3 12 19 24 71 | 3 19 11 18 72 | 3 9 20 22 73 | 3 20 13 21 74 | 3 17 22 18 75 | 3 12 24 23 76 | 3 23 21 15 77 | 3 19 18 24 78 | 3 20 21 22 79 | 3 22 25 18 80 | 3 23 24 21 81 | 3 24 18 25 82 | 3 22 21 25 83 | 3 24 25 21 84 | -------------------------------------------------------------------------------- /PLY_Files/32_triakis_icosahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 32 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 60 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.168381 0.618034 0.985722 11 | -0.458605 -0.447214 0.985722 12 | 0.168381 -0.0991064 0.985722 13 | 0.759815 -0.447214 0.777591 14 | -0.440828 0.259464 0.864969 15 | 0.702962 0.259464 0.669586 16 | -0.939182 0.552786 0.440828 17 | 0.114379 -0.740536 0.669586 18 | 1.03226 0.552786 0.104065 19 | -0.871343 -0.160358 0.474204 20 | -0.28276 0.839643 0.474204 21 | 0.0177765 -1.17082 0.104065 22 | 0.979348 -0.160358 0.158068 23 | 0.424141 0.839643 0.353451 24 | -1.03226 -0.552786 -0.104065 25 | -0.0177765 1.17082 -0.104065 26 | -0.528206 -0.778391 0.353451 27 | 0.615584 -0.778391 0.158068 28 | 0.939182 -0.552786 -0.440828 29 | -0.979348 0.160358 -0.158068 30 | -0.615584 0.778391 -0.158068 31 | 0.871343 0.160358 -0.474204 32 | 0.528206 0.778391 -0.353451 33 | -0.759815 0.447214 -0.777591 34 | -0.424141 -0.839643 -0.353451 35 | 0.28276 -0.839643 -0.474204 36 | 0.458605 0.447214 -0.985722 37 | -0.702962 -0.259464 -0.669586 38 | -0.114379 0.740536 -0.669586 39 | -0.168381 -0.618034 -0.985722 40 | 0.440828 -0.259464 -0.864969 41 | -0.168381 0.0991064 -0.985722 42 | 3 2 0 1 43 | 3 2 3 0 44 | 3 0 4 1 45 | 3 1 3 2 46 | 3 0 3 5 47 | 3 1 4 6 48 | 3 4 0 6 49 | 3 3 1 7 50 | 3 3 8 5 51 | 3 5 8 0 52 | 3 6 9 1 53 | 3 0 10 6 54 | 3 1 11 7 55 | 3 7 11 3 56 | 3 8 3 12 57 | 3 0 8 13 58 | 3 1 9 14 59 | 3 9 6 14 60 | 3 6 10 15 61 | 3 10 0 15 62 | 3 11 1 16 63 | 3 3 11 17 64 | 3 3 18 12 65 | 3 12 18 8 66 | 3 8 15 13 67 | 3 13 15 0 68 | 3 14 16 1 69 | 3 6 19 14 70 | 3 15 20 6 71 | 3 16 14 11 72 | 3 11 18 17 73 | 3 17 18 3 74 | 3 8 18 21 75 | 3 15 8 22 76 | 3 14 19 23 77 | 3 19 6 23 78 | 3 6 20 23 79 | 3 20 15 23 80 | 3 11 14 24 81 | 3 18 11 25 82 | 3 18 26 21 83 | 3 21 26 8 84 | 3 8 26 22 85 | 3 22 26 15 86 | 3 23 27 14 87 | 3 15 28 23 88 | 3 14 29 24 89 | 3 24 29 11 90 | 3 11 29 25 91 | 3 25 29 18 92 | 3 26 18 30 93 | 3 15 26 28 94 | 3 14 27 29 95 | 3 27 23 29 96 | 3 23 28 26 97 | 3 18 29 30 98 | 3 30 29 26 99 | 3 23 31 29 100 | 3 26 31 23 101 | 3 26 29 31 102 | -------------------------------------------------------------------------------- /PLY_Files/33_pentakis_dodecahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 32 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 60 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.201774 0.381966 0.979432 11 | -0.429238 -0.0486327 0.979432 12 | 0.201774 -0.295686 0.979432 13 | 0.781406 -0.0486327 0.730026 14 | -0.403548 0.591372 0.758194 15 | -0.239594 -0.745356 0.730026 16 | 0.670364 0.591372 0.536956 17 | 0.508626 -0.745356 0.575884 18 | -0.921987 0.254644 0.480619 19 | 0.099013 0.951367 0.480619 20 | -0.795067 -0.408628 0.536956 21 | 1.03688 0.254644 0.0770708 22 | 0.942559 -0.408628 0.178985 23 | -0.59551 0.872678 0.172336 24 | 0.036873 -1.02666 0.178985 25 | -0.615135 -0.872678 0.0770708 26 | 0.615135 0.872678 -0.0770708 27 | 0.59551 -0.872678 -0.172336 28 | -0.942559 0.408628 -0.178985 29 | -1.03688 -0.254644 -0.0770708 30 | -0.036873 1.02666 -0.178985 31 | 0.795067 0.408628 -0.536956 32 | 0.921987 -0.254644 -0.480619 33 | -0.508626 0.745356 -0.575884 34 | -0.099013 -0.951367 -0.480619 35 | -0.670364 -0.591372 -0.536956 36 | 0.239594 0.745356 -0.730026 37 | 0.403548 -0.591372 -0.758194 38 | -0.781406 0.0486327 -0.730026 39 | 0.429238 0.0486327 -0.979432 40 | -0.201774 0.295686 -0.979432 41 | -0.201774 -0.381966 -0.979432 42 | 3 2 0 1 43 | 3 2 3 0 44 | 3 0 4 1 45 | 3 1 5 2 46 | 3 0 3 6 47 | 3 3 2 7 48 | 3 1 4 8 49 | 3 4 0 9 50 | 3 2 5 7 51 | 3 5 1 10 52 | 3 3 11 6 53 | 3 6 9 0 54 | 3 7 12 3 55 | 3 4 13 8 56 | 3 8 10 1 57 | 3 9 13 4 58 | 3 5 14 7 59 | 3 10 15 5 60 | 3 6 11 16 61 | 3 11 3 12 62 | 3 9 6 16 63 | 3 12 7 17 64 | 3 8 13 18 65 | 3 10 8 19 66 | 3 13 9 20 67 | 3 7 14 17 68 | 3 14 5 15 69 | 3 15 10 19 70 | 3 11 21 16 71 | 3 12 22 11 72 | 3 16 20 9 73 | 3 17 22 12 74 | 3 13 23 18 75 | 3 18 19 8 76 | 3 20 23 13 77 | 3 14 24 17 78 | 3 15 24 14 79 | 3 19 25 15 80 | 3 16 21 26 81 | 3 21 11 22 82 | 3 20 16 26 83 | 3 22 17 27 84 | 3 18 23 28 85 | 3 19 18 28 86 | 3 23 20 26 87 | 3 17 24 27 88 | 3 24 15 25 89 | 3 25 19 28 90 | 3 21 29 26 91 | 3 22 29 21 92 | 3 27 29 22 93 | 3 23 30 28 94 | 3 26 30 23 95 | 3 24 31 27 96 | 3 25 31 24 97 | 3 28 31 25 98 | 3 26 29 30 99 | 3 29 27 31 100 | 3 28 30 31 101 | 3 29 31 30 102 | -------------------------------------------------------------------------------- /PLY_Files/34_tetrakis_hexahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 14 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 24 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.316228 0.707107 0.948683 11 | -0.737865 -0.235702 0.948683 12 | 0.316228 -0.353553 0.948683 13 | 1.1595 -0.235702 0.316228 14 | -0.632456 0.707107 0.474342 15 | 0.105409 -1.17851 0.316228 16 | 0.790569 0.707107 0 17 | -1.1595 0.235702 -0.316228 18 | -0.105409 1.17851 -0.316228 19 | -0.790569 -0.707107 0 20 | 0.737865 0.235702 -0.948683 21 | 0.632456 -0.707107 -0.474342 22 | -0.316228 -0.707107 -0.948683 23 | -0.316228 0.353553 -0.948683 24 | 3 2 0 1 25 | 3 2 3 0 26 | 3 0 4 1 27 | 3 1 5 2 28 | 3 0 3 6 29 | 3 3 2 5 30 | 3 1 4 7 31 | 3 4 0 8 32 | 3 5 1 9 33 | 3 3 10 6 34 | 3 6 8 0 35 | 3 5 11 3 36 | 3 4 8 7 37 | 3 7 9 1 38 | 3 9 12 5 39 | 3 6 10 8 40 | 3 10 3 11 41 | 3 11 5 12 42 | 3 7 8 13 43 | 3 9 7 12 44 | 3 10 13 8 45 | 3 11 12 10 46 | 3 13 12 7 47 | 3 13 10 12 48 | -------------------------------------------------------------------------------- /PLY_Files/35_triakis_tetrahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 8 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 12 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.426401 1.41421 0.904534 11 | -1.13707 -0.942809 0.904534 12 | 0.426401 -0.282843 0.904534 13 | 1.42134 -0.942809 -0.301511 14 | -0.852803 0.565685 0.180907 15 | 0.682242 0.565685 -0.54272 16 | -0.710669 0.471404 -1.50756 17 | -0.255841 -0.848528 -0.54272 18 | 3 2 0 1 19 | 3 2 3 0 20 | 3 0 4 1 21 | 3 1 3 2 22 | 3 0 3 5 23 | 3 1 4 6 24 | 3 4 0 6 25 | 3 3 1 7 26 | 3 3 6 5 27 | 3 5 6 0 28 | 3 6 7 1 29 | 3 7 6 3 30 | -------------------------------------------------------------------------------- /PLY_Files/36_heptagonal_bipyramid.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 9 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 14 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.413300 0.500000 0.952500 11 | -0.568900 0.311700 0.952500 12 | 0.413300 -2.156000 0.952500 13 | 1.084200 0.311700 0.235200 14 | -0.413300 2.156000 -0.952500 15 | -1.122600 -0.111300 0.235200 16 | 0.938700 -0.111300 -0.659100 17 | -0.831000 -0.450500 -0.659100 18 | 0.086400 -0.450500 -1.057200 19 | 3 2 0 1 20 | 3 2 3 0 21 | 3 0 4 1 22 | 3 1 5 2 23 | 3 0 3 4 24 | 3 3 2 6 25 | 3 1 4 5 26 | 3 2 5 7 27 | 3 3 6 4 28 | 3 2 8 6 29 | 3 4 7 5 30 | 3 7 8 2 31 | 3 4 6 8 32 | 3 7 4 8 33 | -------------------------------------------------------------------------------- /PLY_Files/37_enneagonal_trapezohedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 20 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 18 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.801500 0.500000 2.307800 11 | -0.096700 0.939700 2.307800 12 | -0.886500 0.326400 2.307800 13 | 0.801500 -7.790900 2.307800 14 | 2.126100 0.326400 1.261500 15 | 1.506300 0.939700 1.751100 16 | -0.801500 7.790900 -2.307800 17 | -1.666100 0.613300 1.751100 18 | -2.148000 -0.113300 1.261500 19 | 2.467500 -0.113300 -0.341400 20 | 2.392800 0.613300 0.341400 21 | -2.467500 0.113300 0.341400 22 | -2.392800 -0.613300 -0.341400 23 | 1.666100 -0.613300 -1.751100 24 | 2.148000 0.113300 -1.261500 25 | -2.126100 -0.326400 -1.261500 26 | -1.506300 -0.939700 -1.751100 27 | 0.096700 -0.939700 -2.307800 28 | 0.886500 -0.326400 -2.307800 29 | -0.801500 -0.500000 -2.307800 30 | 4 3 0 1 2 31 | 4 0 3 4 5 32 | 4 1 0 5 6 33 | 4 2 1 6 7 34 | 4 3 2 7 8 35 | 4 4 3 9 10 36 | 4 5 4 10 6 37 | 4 7 6 11 8 38 | 4 3 8 11 12 39 | 4 9 3 13 14 40 | 4 10 9 14 6 41 | 4 11 6 15 12 42 | 4 3 12 15 16 43 | 4 13 3 17 18 44 | 4 14 13 18 6 45 | 4 15 6 19 16 46 | 4 3 16 19 17 47 | 4 18 17 19 6 48 | -------------------------------------------------------------------------------- /PLY_Files/38_small_stell_dodecahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 32 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 60 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.000000 0.000000 1.070470 11 | 0.713640 0.000000 0.797880 12 | -0.356820 0.618000 0.797880 13 | -0.356820 -0.618000 0.797880 14 | 0.797880 0.618030 0.356820 15 | 0.797880 -0.618000 0.356820 16 | -0.934170 0.381970 0.356820 17 | 0.136290 1.000000 0.356820 18 | 0.136290 -1.000000 0.356820 19 | -0.934170 -0.381970 0.356820 20 | 0.934170 0.381970 -0.356820 21 | 0.934170 -0.381970 -0.356820 22 | -0.797880 0.618000 -0.356820 23 | -0.136290 1.000000 -0.356820 24 | -0.136290 -1.000000 -0.356820 25 | -0.797880 -0.618030 -0.356820 26 | 0.356820 0.618000 -0.797880 27 | 0.356820 -0.618000 -0.797880 28 | -0.713640 0.000000 -0.797880 29 | 0.000000 0.000000 -1.070470 30 | 0.577351 0.999993 1.511517 31 | -1.154680 0.000002 1.511490 32 | 0.577303 -0.999980 1.511497 33 | 1.868310 0.000015 0.356815 34 | -0.934221 1.618015 0.356837 35 | -0.934124 -1.618038 0.356829 36 | 0.934126 1.618041 -0.356830 37 | 0.934217 -1.618027 -0.356835 38 | -1.868322 -0.000015 -0.356817 39 | 1.154709 0.000000 -1.511529 40 | -0.577367 0.999973 -1.511563 41 | -0.577355 -1.000000 -1.511528 42 | 3 0 1 20 43 | 3 1 4 20 44 | 3 4 7 20 45 | 3 7 2 20 46 | 3 2 0 20 47 | 3 0 2 21 48 | 3 2 6 21 49 | 3 6 9 21 50 | 3 9 3 21 51 | 3 3 0 21 52 | 3 0 3 22 53 | 3 3 8 22 54 | 3 8 5 22 55 | 3 5 1 22 56 | 3 1 0 22 57 | 3 1 5 23 58 | 3 5 11 23 59 | 3 11 10 23 60 | 3 10 4 23 61 | 3 4 1 23 62 | 3 2 7 24 63 | 3 7 13 24 64 | 3 13 12 24 65 | 3 12 6 24 66 | 3 6 2 24 67 | 3 3 9 25 68 | 3 9 15 25 69 | 3 15 14 25 70 | 3 14 8 25 71 | 3 8 3 25 72 | 3 4 10 26 73 | 3 10 16 26 74 | 3 16 13 26 75 | 3 13 7 26 76 | 3 7 4 26 77 | 3 5 8 27 78 | 3 8 14 27 79 | 3 14 17 27 80 | 3 17 11 27 81 | 3 11 5 27 82 | 3 6 12 28 83 | 3 12 18 28 84 | 3 18 15 28 85 | 3 15 9 28 86 | 3 9 6 28 87 | 3 10 11 29 88 | 3 11 17 29 89 | 3 17 19 29 90 | 3 19 16 29 91 | 3 16 10 29 92 | 3 12 13 30 93 | 3 13 16 30 94 | 3 16 19 30 95 | 3 19 18 30 96 | 3 18 12 30 97 | 3 14 15 31 98 | 3 15 18 31 99 | 3 18 19 31 100 | 3 19 17 31 101 | 3 17 14 31 102 | -------------------------------------------------------------------------------- /PLY_Files/39_rhombic_hexecontahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 62 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 60 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.000000 0.000000 1.401263 11 | 0.934167 0.000000 1.044438 12 | -0.467083 0.808973 1.044438 13 | -0.467083 -0.808973 1.044438 14 | 1.044438 0.809012 0.467083 15 | 1.044438 -0.808973 0.467083 16 | -1.222844 0.500005 0.467083 17 | 0.178406 1.309017 0.467083 18 | 0.178406 -1.309017 0.467083 19 | -1.222844 -0.500005 0.467083 20 | 1.222844 0.500005 -0.467083 21 | 1.222844 -0.500005 -0.467083 22 | -1.044438 0.808973 -0.467083 23 | -0.178406 1.309017 -0.467083 24 | -0.178406 -1.309017 -0.467083 25 | -1.044438 -0.809012 -0.467083 26 | 0.467083 0.808973 -1.044438 27 | 0.467083 -0.808973 -1.044438 28 | -0.934167 0.000000 -1.044438 29 | 0.000000 0.000000 -1.401263 30 | 0.356820 0.000000 0.934175 31 | 0.755760 0.309015 0.577350 32 | 0.467085 0.809015 0.356820 33 | -0.178410 0.309000 0.934175 34 | -0.645495 0.499985 0.577350 35 | -0.934170 0.000000 0.356820 36 | -0.178410 -0.309000 0.934175 37 | -0.110265 -0.809000 0.577350 38 | 0.755760 -0.309000 0.577350 39 | 0.866025 -0.499985 0.000000 40 | -0.110265 0.809000 0.577350 41 | 0.000000 1.000000 0.000000 42 | -0.645495 -0.499985 0.577350 43 | -0.866025 -0.500000 0.000000 44 | 0.866025 0.500000 0.000000 45 | 0.645495 0.499985 -0.577350 46 | 0.467085 -0.809000 0.356820 47 | 0.000000 -1.000000 0.000000 48 | 0.110265 -0.809000 -0.577350 49 | -0.866025 0.499985 0.000000 50 | -0.755760 0.309000 -0.577350 51 | 0.934170 0.000000 -0.356820 52 | 0.645495 -0.499985 -0.577350 53 | 0.178410 -0.309000 -0.934175 54 | -0.467085 0.809000 -0.356820 55 | 0.110265 0.809000 -0.577350 56 | 0.178410 0.309000 -0.934175 57 | -0.467085 -0.809015 -0.356820 58 | -0.755760 -0.309015 -0.577350 59 | -0.356820 0.000000 -0.934175 60 | 0.178410 0.309012 0.467087 61 | -0.356821 0.000000 0.467087 62 | 0.178410 -0.309008 0.467087 63 | 0.577349 0.000004 0.110264 64 | -0.288675 0.499991 0.110264 65 | -0.288675 -0.499995 0.110264 66 | 0.288675 0.499995 -0.110264 67 | 0.288675 -0.499991 -0.110264 68 | -0.577349 -0.000004 -0.110264 69 | 0.356821 0.000000 -0.467087 70 | -0.178410 0.309008 -0.467087 71 | -0.178410 -0.309012 -0.467087 72 | 4 50 20 1 21 73 | 4 50 21 4 22 74 | 4 50 22 7 30 75 | 4 50 30 2 23 76 | 4 50 23 0 20 77 | 4 51 23 2 24 78 | 4 51 24 6 25 79 | 4 51 25 9 32 80 | 4 51 32 3 26 81 | 4 51 26 0 23 82 | 4 52 26 3 27 83 | 4 52 27 8 36 84 | 4 52 36 5 28 85 | 4 52 28 1 20 86 | 4 52 20 0 26 87 | 4 53 28 5 29 88 | 4 53 29 11 41 89 | 4 53 41 10 34 90 | 4 53 34 4 21 91 | 4 53 21 1 28 92 | 4 54 30 7 31 93 | 4 54 31 13 44 94 | 4 54 44 12 39 95 | 4 54 39 6 24 96 | 4 54 24 2 30 97 | 4 55 32 9 33 98 | 4 55 33 15 47 99 | 4 55 47 14 37 100 | 4 55 37 8 27 101 | 4 55 27 3 32 102 | 4 56 34 10 35 103 | 4 56 35 16 45 104 | 4 56 45 13 31 105 | 4 56 31 7 22 106 | 4 56 22 4 34 107 | 4 57 36 8 37 108 | 4 57 37 14 38 109 | 4 57 38 17 42 110 | 4 57 42 11 29 111 | 4 57 29 5 36 112 | 4 58 39 12 40 113 | 4 58 40 18 48 114 | 4 58 48 15 33 115 | 4 58 33 9 25 116 | 4 58 25 6 39 117 | 4 59 41 11 42 118 | 4 59 42 17 43 119 | 4 59 43 19 46 120 | 4 59 46 16 35 121 | 4 59 35 10 41 122 | 4 60 44 13 45 123 | 4 60 45 16 46 124 | 4 60 46 19 49 125 | 4 60 49 18 40 126 | 4 60 40 12 44 127 | 4 61 47 15 48 128 | 4 61 48 18 49 129 | 4 61 49 19 43 130 | 4 61 43 17 38 131 | 4 61 38 14 47 132 | -------------------------------------------------------------------------------- /PLY_Files/41_doublehelix.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 36 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 66 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | -4.000000 0.000000 -1.306563 11 | -4.000000 0.923880 -0.923880 12 | -4.000000 0.000000 1.306563 13 | -4.000000 -0.923880 0.923880 14 | -3.000000 0.923880 -0.923880 15 | -3.000000 1.306563 -0.000000 16 | -3.000000 -0.923880 0.923880 17 | -3.000000 -1.306563 0.000000 18 | -2.000000 1.306563 -0.000000 19 | -2.000000 0.923880 0.923880 20 | -2.000000 -1.306563 0.000000 21 | -2.000000 -0.923880 -0.923880 22 | -1.000000 0.923880 0.923880 23 | -1.000000 0.000000 1.306563 24 | -1.000000 -0.923880 -0.923880 25 | -1.000000 -0.000000 -1.306563 26 | -0.000000 0.000000 1.306563 27 | -0.000000 -0.923880 0.923880 28 | 0.000000 -0.000000 -1.306563 29 | 0.000000 0.923880 -0.923880 30 | 1.000000 -0.923880 0.923880 31 | 1.000000 -1.306563 0.000000 32 | 1.000000 0.923880 -0.923880 33 | 1.000000 1.306563 -0.000000 34 | 2.000000 -1.306563 0.000000 35 | 2.000000 -0.923880 -0.923880 36 | 2.000000 1.306563 -0.000000 37 | 2.000000 0.923880 0.923880 38 | 3.000000 -0.923880 -0.923880 39 | 3.000000 -0.000000 -1.306563 40 | 3.000000 0.923880 0.923880 41 | 3.000000 0.000000 1.306563 42 | 4.000000 -0.000000 -1.306563 43 | 4.000000 0.923880 -0.923880 44 | 4.000000 0.000000 1.306563 45 | 4.000000 -0.923880 0.923880 46 | 3 4 0 1 47 | 3 4 1 5 48 | 3 5 1 2 49 | 3 5 2 6 50 | 3 6 2 3 51 | 3 6 3 7 52 | 3 7 3 4 53 | 3 3 0 4 54 | 3 8 4 5 55 | 3 8 5 9 56 | 3 9 5 6 57 | 3 9 6 10 58 | 3 10 6 7 59 | 3 10 7 11 60 | 3 11 7 8 61 | 3 7 4 8 62 | 3 12 8 9 63 | 3 12 9 13 64 | 3 13 9 10 65 | 3 13 10 14 66 | 3 14 10 11 67 | 3 14 11 15 68 | 3 15 11 12 69 | 3 11 8 12 70 | 3 16 12 13 71 | 3 16 13 17 72 | 3 17 13 14 73 | 3 17 14 18 74 | 3 18 14 15 75 | 3 18 15 19 76 | 3 19 15 16 77 | 3 15 12 16 78 | 3 20 16 17 79 | 3 20 17 21 80 | 3 21 17 18 81 | 3 21 18 22 82 | 3 22 18 19 83 | 3 22 19 23 84 | 3 23 19 20 85 | 3 19 16 20 86 | 3 24 20 21 87 | 3 24 21 25 88 | 3 25 21 22 89 | 3 25 22 26 90 | 3 26 22 23 91 | 3 26 23 27 92 | 3 27 23 24 93 | 3 23 20 24 94 | 3 28 24 25 95 | 3 28 25 29 96 | 3 29 25 26 97 | 3 29 26 30 98 | 3 30 26 27 99 | 3 30 27 31 100 | 3 31 27 28 101 | 3 27 24 28 102 | 3 32 28 29 103 | 3 32 29 33 104 | 3 33 29 30 105 | 3 33 30 34 106 | 3 34 30 31 107 | 3 34 31 35 108 | 3 35 31 32 109 | 3 31 28 32 110 | 4 3 2 1 0 111 | 4 32 33 34 35 112 | -------------------------------------------------------------------------------- /PLY_Files/42_nested_cube.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 16 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 16 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.707000 0.707000 0.707000 11 | -0.707000 0.707000 0.707000 12 | -0.707000 -0.707000 0.707000 13 | 0.707000 -0.707000 0.707000 14 | 0.707000 -0.707000 -0.707000 15 | 0.707000 0.707000 -0.707000 16 | -0.707000 0.707000 -0.707000 17 | -0.707000 -0.707000 -0.707000 18 | 1.414000 1.414000 1.414000 19 | -1.414000 1.414000 1.414000 20 | -1.414000 -1.414000 1.414000 21 | 1.414000 -1.414000 1.414000 22 | 1.414000 -1.414000 -1.414000 23 | 1.414000 1.414000 -1.414000 24 | -1.414000 1.414000 -1.414000 25 | -1.414000 -1.414000 -1.414000 26 | 4 0 1 6 5 27 | 4 1 2 7 6 28 | 4 2 3 4 7 29 | 4 3 0 5 4 30 | 4 8 13 14 9 31 | 4 9 14 15 10 32 | 4 10 15 12 11 33 | 4 11 12 13 8 34 | 4 1 0 8 9 35 | 4 2 1 9 10 36 | 4 3 2 10 11 37 | 4 0 3 11 8 38 | 4 4 5 13 12 39 | 4 5 6 14 13 40 | 4 6 7 15 14 41 | 4 7 4 12 15 42 | -------------------------------------------------------------------------------- /PLY_Files/43_nested_octahedron.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 12 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 18 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.000000 0.000000 1.000000 11 | 0.000000 0.000000 -1.000000 12 | 0.000000 1.000000 0.000000 13 | 0.000000 -1.000000 0.000000 14 | 1.000000 0.000000 0.000000 15 | -1.000000 0.000000 0.000000 16 | 0.000000 0.000000 2.000000 17 | 0.000000 0.000000 -2.000000 18 | 0.000000 2.000000 0.000000 19 | 0.000000 -2.000000 0.000000 20 | 2.000000 0.000000 0.000000 21 | -2.000000 0.000000 0.000000 22 | 3 0 4 3 23 | 3 0 3 5 24 | 3 0 5 2 25 | 3 1 4 2 26 | 3 1 3 4 27 | 3 1 2 5 28 | 3 6 9 10 29 | 3 6 11 9 30 | 3 6 8 11 31 | 3 7 8 10 32 | 3 7 10 9 33 | 3 7 11 8 34 | 4 0 2 8 6 35 | 4 4 0 6 10 36 | 4 2 4 10 8 37 | 4 1 5 11 7 38 | 4 3 1 7 9 39 | 4 5 3 9 11 40 | -------------------------------------------------------------------------------- /PLY_Files/44_torus.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment VCGLIB generated 4 | element vertex 36 5 | property float x 6 | property float y 7 | property float z 8 | element face 72 9 | property list uchar int vertex_indices 10 | end_header 11 | -37.6104 4.33013 -31.3467 12 | -40.1104 7.45058e-007 -31.3467 13 | -42.6104 1.11759e-006 -27.0165 14 | -31.3604 -6.49519 -27.0165 15 | -30.1104 0 -31.3467 16 | -27.6104 9.61481e-016 -27.0165 17 | -31.3604 6.49519 -27.0165 18 | -38.8604 6.49519 -27.0165 19 | -38.8604 -6.49519 -27.0165 20 | -22.6104 9.61481e-016 -27.0165 21 | -28.8604 10.8253 -27.0165 22 | -50.1104 2.23517e-006 -31.3467 23 | -41.3604 10.8253 -27.0165 24 | -42.6104 12.9904 -31.3467 25 | -47.6104 1.86265e-006 -27.0165 26 | -41.3604 -10.8253 -27.0165 27 | -28.8604 -10.8253 -27.0165 28 | -27.6104 12.9904 -31.3467 29 | -47.6104 1.86265e-006 -35.6768 30 | -27.6104 -12.9904 -31.3467 31 | -28.8604 -10.8253 -35.6768 32 | -42.6104 -12.9904 -31.3467 33 | -41.3604 -10.8253 -35.6768 34 | -22.6104 -9.61481e-016 -35.6768 35 | -28.8604 10.8253 -35.6768 36 | -20.1104 -1.65436e-022 -31.3467 37 | -41.3604 10.8253 -35.6768 38 | -42.6104 1.11759e-006 -35.6768 39 | -27.6104 -9.61481e-016 -35.6768 40 | -31.3604 6.49519 -35.6768 41 | -38.8604 6.49519 -35.6768 42 | -38.8604 -6.49519 -35.6768 43 | -32.6104 -4.33013 -31.3467 44 | -37.6104 -4.33013 -31.3467 45 | -31.3604 -6.49519 -35.6768 46 | -32.6104 4.33013 -31.3467 47 | 3 0 35 7 48 | 3 7 35 6 49 | 3 1 0 2 50 | 3 2 0 7 51 | 3 33 1 8 52 | 3 8 1 2 53 | 3 32 33 3 54 | 3 3 33 8 55 | 3 4 32 5 56 | 3 5 32 3 57 | 3 35 4 6 58 | 3 6 4 5 59 | 3 7 6 12 60 | 3 12 6 10 61 | 3 2 7 14 62 | 3 14 7 12 63 | 3 8 2 15 64 | 3 15 2 14 65 | 3 3 8 16 66 | 3 16 8 15 67 | 3 5 3 9 68 | 3 9 3 16 69 | 3 6 5 10 70 | 3 10 5 9 71 | 3 12 10 13 72 | 3 13 10 17 73 | 3 14 12 11 74 | 3 11 12 13 75 | 3 15 14 21 76 | 3 21 14 11 77 | 3 16 15 19 78 | 3 19 15 21 79 | 3 9 16 25 80 | 3 25 16 19 81 | 3 10 9 17 82 | 3 17 9 25 83 | 3 13 17 26 84 | 3 26 17 24 85 | 3 11 13 18 86 | 3 18 13 26 87 | 3 21 11 22 88 | 3 22 11 18 89 | 3 19 21 20 90 | 3 20 21 22 91 | 3 25 19 23 92 | 3 23 19 20 93 | 3 17 25 24 94 | 3 24 25 23 95 | 3 26 24 30 96 | 3 30 24 29 97 | 3 18 26 27 98 | 3 27 26 30 99 | 3 22 18 31 100 | 3 31 18 27 101 | 3 20 22 34 102 | 3 34 22 31 103 | 3 23 20 28 104 | 3 28 20 34 105 | 3 24 23 29 106 | 3 29 23 28 107 | 3 30 29 0 108 | 3 0 29 35 109 | 3 27 30 1 110 | 3 1 30 0 111 | 3 31 27 33 112 | 3 33 27 1 113 | 3 34 31 32 114 | 3 32 31 33 115 | 3 28 34 4 116 | 3 4 34 32 117 | 3 29 28 35 118 | 3 35 28 4 119 | -------------------------------------------------------------------------------- /PLY_Files/45_double_torus.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 44 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 46 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 2.598076 0.500000 1.000000 11 | 1.732051 1.000000 1.000000 12 | 0.866025 0.500000 1.000000 13 | 0.866025 -0.500000 1.000000 14 | 1.732051 -1.000000 1.000000 15 | 2.598076 -0.500000 1.000000 16 | 2.598076 0.500000 -1.000000 17 | 1.732051 1.000000 -1.000000 18 | 0.866025 0.500000 -1.000000 19 | 0.866025 -0.500000 -1.000000 20 | 1.732051 -1.000000 -1.000000 21 | 2.598076 -0.500000 -1.000000 22 | 3.464102 1.000000 1.000000 23 | 1.732051 2.000000 1.000000 24 | 0.000000 1.000000 1.000000 25 | -0.000000 -1.000000 1.000000 26 | 1.732051 -2.000000 1.000000 27 | 3.464102 -1.000000 1.000000 28 | 3.464102 1.000000 -1.000000 29 | 1.732051 2.000000 -1.000000 30 | 0.000000 1.000000 -1.000000 31 | -0.000000 -1.000000 -1.000000 32 | 1.732051 -2.000000 -1.000000 33 | 3.464102 -1.000000 -1.000000 34 | -0.866025 1.000000 -0.500000 35 | -1.732051 1.000000 -1.000000 36 | -2.598076 1.000000 -0.500000 37 | -2.598076 1.000000 0.500000 38 | -1.732051 1.000000 1.000000 39 | -0.866025 1.000000 0.500000 40 | -0.866025 -1.000000 -0.500000 41 | -1.732051 -1.000000 -1.000000 42 | -2.598076 -1.000000 -0.500000 43 | -2.598076 -1.000000 0.500000 44 | -1.732051 -1.000000 1.000000 45 | -0.866025 -1.000000 0.500000 46 | -1.732051 1.000000 -2.000000 47 | -3.464102 1.000000 -1.000000 48 | -3.464102 1.000000 1.000000 49 | -1.732051 1.000000 2.000000 50 | -1.732051 -1.000000 -2.000000 51 | -3.464102 -1.000000 -1.000000 52 | -3.464102 -1.000000 1.000000 53 | -1.732051 -1.000000 2.000000 54 | 4 12 13 1 0 55 | 4 13 14 2 1 56 | 4 14 15 3 2 57 | 4 15 16 4 3 58 | 4 16 17 5 4 59 | 4 17 12 0 5 60 | 4 6 7 19 18 61 | 4 7 8 20 19 62 | 4 8 9 21 20 63 | 4 9 10 22 21 64 | 4 10 11 23 22 65 | 4 11 6 18 23 66 | 4 0 1 7 6 67 | 4 1 2 8 7 68 | 4 2 3 9 8 69 | 4 3 4 10 9 70 | 4 4 5 11 10 71 | 4 5 0 6 11 72 | 4 13 12 18 19 73 | 4 14 13 19 20 74 | 4 16 15 21 22 75 | 4 17 16 22 23 76 | 4 12 17 23 18 77 | 4 20 36 25 24 78 | 4 36 37 26 25 79 | 4 37 38 27 26 80 | 4 38 39 28 27 81 | 4 39 14 29 28 82 | 4 14 20 24 29 83 | 4 30 31 40 21 84 | 4 31 32 41 40 85 | 4 32 33 42 41 86 | 4 33 34 43 42 87 | 4 34 35 15 43 88 | 4 35 30 21 15 89 | 4 24 25 31 30 90 | 4 25 26 32 31 91 | 4 26 27 33 32 92 | 4 27 28 34 33 93 | 4 28 29 35 34 94 | 4 29 24 30 35 95 | 4 36 20 21 40 96 | 4 37 36 40 41 97 | 4 38 37 41 42 98 | 4 39 38 42 43 99 | 4 14 39 43 15 100 | -------------------------------------------------------------------------------- /PLY_Files/46_reinforced_cube.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 8 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 12 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 1.000000 1.000000 1.000000 11 | -1.000000 1.000000 1.000000 12 | -1.000000 -1.000000 1.000000 13 | 1.000000 -1.000000 1.000000 14 | 1.000000 1.000000 -1.000000 15 | -1.000000 1.000000 -1.000000 16 | -1.000000 -1.000000 -1.000000 17 | 1.000000 -1.000000 -1.000000 18 | 3 0 1 3 19 | 3 1 2 3 20 | 3 0 4 1 21 | 3 1 4 5 22 | 3 0 3 4 23 | 3 4 3 7 24 | 3 6 2 1 25 | 3 6 1 5 26 | 3 3 2 6 27 | 3 7 3 6 28 | 3 7 6 4 29 | 3 4 6 5 30 | -------------------------------------------------------------------------------- /PLY_Files/47_ball.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 42 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 80 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | -1.32455e-007 0 32.6902 11 | 29.5118 -1.30744e-015 18.2393 12 | -26.4469 -16.3451 -10.1018 13 | -32.6902 1.32455e-007 0 14 | 0 -18.2393 29.5118 15 | -16.3451 -10.1018 26.4469 16 | -16.3451 10.1018 26.4469 17 | 0 18.2393 -29.5118 18 | -29.5118 1.30744e-015 -18.2393 19 | -10.1018 -26.4469 16.3451 20 | -18.2393 -29.5118 -2.47814e-015 21 | 10.1018 -26.4469 -16.3451 22 | -18.2393 29.5118 2.47814e-015 23 | 10.1018 26.4469 -16.3451 24 | 0 32.6902 1.32455e-007 25 | 18.2393 -29.5118 -2.47814e-015 26 | 0 -32.6902 1.32455e-007 27 | 0 -18.2393 -29.5118 28 | -10.1018 -26.4469 -16.3451 29 | -10.1018 26.4469 -16.3451 30 | -16.3451 10.1018 -26.4469 31 | -16.3451 -10.1018 -26.4469 32 | -26.4469 16.3451 10.1018 33 | -10.1018 26.4469 16.3451 34 | -26.4469 -16.3451 10.1018 35 | -29.5118 -1.30744e-015 18.2393 36 | -26.4469 16.3451 -10.1018 37 | 10.1018 26.4469 16.3451 38 | 26.4469 16.3451 10.1018 39 | 18.2393 29.5118 2.47814e-015 40 | 10.1018 -26.4469 16.3451 41 | 16.3451 -10.1018 26.4469 42 | 26.4469 -16.3451 10.1018 43 | 0 18.2393 29.5118 44 | 16.3451 10.1018 26.4469 45 | 16.3451 -10.1018 -26.4469 46 | 16.3451 10.1018 -26.4469 47 | 1.32455e-007 0 -32.6902 48 | 32.6902 1.32455e-007 0 49 | 26.4469 16.3451 -10.1018 50 | 26.4469 -16.3451 -10.1018 51 | 29.5118 1.30744e-015 -18.2393 52 | 3 1 32 38 53 | 3 41 39 38 54 | 3 41 35 36 55 | 3 41 36 39 56 | 3 41 40 35 57 | 3 4 31 0 58 | 3 15 32 30 59 | 3 1 28 34 60 | 3 8 2 3 61 | 3 25 22 3 62 | 3 4 0 5 63 | 3 25 24 5 64 | 3 33 23 6 65 | 3 7 37 20 66 | 3 8 26 20 67 | 3 8 21 2 68 | 3 4 9 30 69 | 3 33 27 23 70 | 3 7 19 13 71 | 3 17 11 18 72 | 3 18 16 10 73 | 3 16 11 15 74 | 3 18 11 16 75 | 3 13 14 29 76 | 3 14 19 12 77 | 3 13 19 14 78 | 3 23 14 12 79 | 3 14 27 29 80 | 3 23 27 14 81 | 3 30 16 15 82 | 3 16 9 10 83 | 3 30 9 16 84 | 3 2 18 10 85 | 3 18 21 17 86 | 3 2 21 18 87 | 3 20 19 7 88 | 3 19 26 12 89 | 3 20 26 19 90 | 3 20 21 8 91 | 3 21 37 17 92 | 3 20 37 21 93 | 3 6 22 25 94 | 3 22 23 12 95 | 3 6 23 22 96 | 3 5 9 4 97 | 3 9 24 10 98 | 3 5 24 9 99 | 3 5 6 25 100 | 3 6 0 33 101 | 3 5 0 6 102 | 3 3 26 8 103 | 3 26 22 12 104 | 3 3 22 26 105 | 3 3 24 25 106 | 3 24 2 10 107 | 3 3 2 24 108 | 3 34 27 33 109 | 3 27 28 29 110 | 3 34 28 27 111 | 3 30 31 4 112 | 3 31 32 1 113 | 3 30 32 31 114 | 3 0 34 33 115 | 3 34 31 1 116 | 3 0 31 34 117 | 3 35 11 17 118 | 3 11 40 15 119 | 3 35 40 11 120 | 3 39 13 29 121 | 3 13 36 7 122 | 3 39 36 13 123 | 3 36 37 7 124 | 3 37 35 17 125 | 3 36 35 37 126 | 3 38 28 1 127 | 3 28 39 29 128 | 3 38 39 28 129 | 3 38 40 41 130 | 3 40 32 15 131 | 3 38 32 40 132 | 133 | -------------------------------------------------------------------------------- /PLY_Files/51_stickman.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 96 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 188 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | -1.5 -0.500001 -2 11 | -0.5 -0.500001 -2 12 | 0.5 -0.500001 -2 13 | 1.5 -0.500001 -2 14 | -1.5 -0.5 -1 15 | -0.5 -0.5 -1 16 | 0.5 -0.5 -1 17 | 1.5 -0.5 -1 18 | -1.5 -0.5 1.63397e-07 19 | -0.5 -0.5 1.63397e-07 20 | 0.5 -0.5 1.63397e-07 21 | 1.5 -0.5 1.63397e-07 22 | -1.5 -0.5 1 23 | -0.5 -0.5 1 24 | 0.5 -0.5 1 25 | 1.5 -0.5 1 26 | -1.5 -0.499999 2 27 | -0.5 -0.499999 2 28 | 0.5 -0.499999 2 29 | 1.5 -0.499999 2 30 | -1.5 0.500001 2 31 | -0.5 0.500001 2 32 | 0.5 0.500001 2 33 | 1.5 0.500001 2 34 | -1.5 0.5 1 35 | -0.5 0.5 1 36 | 0.5 0.5 1 37 | 1.5 0.5 1 38 | -1.5 0.5 -1.63397e-07 39 | -0.5 0.5 -1.63397e-07 40 | 0.5 0.5 -1.63397e-07 41 | 1.5 0.5 -1.63397e-07 42 | -1.5 0.5 -1 43 | -0.5 0.5 -1 44 | 0.5 0.5 -1 45 | 1.5 0.5 -1 46 | -1.5 0.499999 -2 47 | -0.5 0.499999 -2 48 | 0.5 0.499999 -2 49 | 1.5 0.499999 -2 50 | -1.673 0.499999 -2.956 51 | -1.844 0.499999 -3.912 52 | -2.013 0.499998 -4.868 53 | -0.674 0.499999 -3.014 54 | -0.851 0.499999 -4.028 55 | -1.029 0.499998 -5.041 56 | -0.674 -0.500001 -3.014 57 | -0.851 -0.500001 -4.028 58 | -1.029 -0.500002 -5.041 59 | -1.673 -0.500001 -2.956 60 | -1.844 -0.500001 -3.912 61 | -2.013 -0.500002 -4.868 62 | 0.674 0.499999 -3.014 63 | 0.851 0.499999 -4.028 64 | 1.029 0.499998 -5.041 65 | 1.673 0.499999 -2.956 66 | 1.844 0.499999 -3.912 67 | 2.013 0.499998 -4.868 68 | 1.673 -0.500001 -2.956 69 | 1.844 -0.500001 -3.912 70 | 2.013 -0.500002 -4.868 71 | 0.674 -0.500001 -3.014 72 | 0.851 -0.500001 -4.028 73 | 1.029 -0.500002 -5.041 74 | 2.453 0.5 1.508 75 | 3.403 0.500001 2.03 76 | 4.348 0.500001 2.567 77 | 2.453 -0.499999 1.508 78 | 3.403 -0.499999 2.03 79 | 4.348 -0.499999 2.567 80 | 2.279 0.500001 2.492 81 | 3.061 0.500001 2.97 82 | 3.848 0.500001 3.433 83 | 2.279 -0.499999 2.492 84 | 3.061 -0.499999 2.97 85 | 3.848 -0.499999 3.433 86 | -2.279 0.5 0.508 87 | -3.061 0.5 0.0299998 88 | -3.848 0.5 -0.433 89 | -2.279 -0.5 0.508 90 | -3.061 -0.5 0.0300002 91 | -3.848 -0.5 -0.433 92 | -2.453 -0.5 1.492 93 | -3.403 -0.5 0.97 94 | -4.348 -0.5 0.433 95 | -2.453 0.5 1.492 96 | -3.403 0.5 0.97 97 | -4.348 0.5 0.433 98 | -0.6 -0.599999 3 99 | 0.6 -0.599999 3 100 | 0.6 0.600001 3 101 | -0.6 0.600001 3 102 | -0.48 -0.479999 4 103 | 0.48 -0.479999 4 104 | 0.48 0.480001 4 105 | -0.48 0.480001 4 106 | 3 0 1 4 107 | 3 4 1 5 108 | 3 1 2 5 109 | 3 5 2 6 110 | 3 2 3 6 111 | 3 6 3 7 112 | 3 4 5 8 113 | 3 8 5 9 114 | 3 5 6 9 115 | 3 9 6 10 116 | 3 6 7 10 117 | 3 10 7 11 118 | 3 8 9 12 119 | 3 12 9 13 120 | 3 9 10 13 121 | 3 13 10 14 122 | 3 10 11 14 123 | 3 14 11 15 124 | 3 12 13 16 125 | 3 16 13 17 126 | 3 13 14 17 127 | 3 17 14 18 128 | 3 14 15 18 129 | 3 18 15 19 130 | 3 16 17 20 131 | 3 20 17 21 132 | 3 92 93 95 133 | 3 95 93 94 134 | 3 18 19 22 135 | 3 22 19 23 136 | 3 20 21 24 137 | 3 24 21 25 138 | 3 21 22 25 139 | 3 25 22 26 140 | 3 22 23 26 141 | 3 26 23 27 142 | 3 24 25 28 143 | 3 28 25 29 144 | 3 25 26 29 145 | 3 29 26 30 146 | 3 26 27 30 147 | 3 30 27 31 148 | 3 28 29 32 149 | 3 32 29 33 150 | 3 29 30 33 151 | 3 33 30 34 152 | 3 30 31 34 153 | 3 34 31 35 154 | 3 32 33 36 155 | 3 36 33 37 156 | 3 33 34 37 157 | 3 37 34 38 158 | 3 34 35 38 159 | 3 38 35 39 160 | 3 42 45 51 161 | 3 51 45 48 162 | 3 37 38 1 163 | 3 1 38 2 164 | 3 54 57 63 165 | 3 63 57 60 166 | 3 3 39 7 167 | 3 7 39 35 168 | 3 7 35 11 169 | 3 11 35 31 170 | 3 11 31 15 171 | 3 15 31 27 172 | 3 69 66 75 173 | 3 75 66 72 174 | 3 36 0 32 175 | 3 32 0 4 176 | 3 32 4 28 177 | 3 28 4 8 178 | 3 28 8 24 179 | 3 24 8 12 180 | 3 78 81 87 181 | 3 87 81 84 182 | 3 37 43 36 183 | 3 36 43 40 184 | 3 43 44 40 185 | 3 40 44 41 186 | 3 44 45 41 187 | 3 41 45 42 188 | 3 37 1 43 189 | 3 43 1 46 190 | 3 43 46 44 191 | 3 44 46 47 192 | 3 44 47 45 193 | 3 45 47 48 194 | 3 1 0 46 195 | 3 46 0 49 196 | 3 46 49 47 197 | 3 47 49 50 198 | 3 47 50 48 199 | 3 48 50 51 200 | 3 0 36 49 201 | 3 49 36 40 202 | 3 49 40 50 203 | 3 50 40 41 204 | 3 50 41 51 205 | 3 51 41 42 206 | 3 38 39 52 207 | 3 52 39 55 208 | 3 52 55 53 209 | 3 53 55 56 210 | 3 53 56 54 211 | 3 54 56 57 212 | 3 39 3 55 213 | 3 55 3 58 214 | 3 55 58 56 215 | 3 56 58 59 216 | 3 56 59 57 217 | 3 57 59 60 218 | 3 2 61 3 219 | 3 3 61 58 220 | 3 61 62 58 221 | 3 58 62 59 222 | 3 62 63 59 223 | 3 59 63 60 224 | 3 2 38 61 225 | 3 61 38 52 226 | 3 61 52 62 227 | 3 62 52 53 228 | 3 62 53 63 229 | 3 63 53 54 230 | 3 15 27 67 231 | 3 67 27 64 232 | 3 67 64 68 233 | 3 68 64 65 234 | 3 68 65 69 235 | 3 69 65 66 236 | 3 27 23 64 237 | 3 64 23 70 238 | 3 64 70 65 239 | 3 65 70 71 240 | 3 65 71 66 241 | 3 66 71 72 242 | 3 23 19 70 243 | 3 70 19 73 244 | 3 70 73 71 245 | 3 71 73 74 246 | 3 71 74 72 247 | 3 72 74 75 248 | 3 15 67 19 249 | 3 19 67 73 250 | 3 67 68 73 251 | 3 73 68 74 252 | 3 68 69 74 253 | 3 74 69 75 254 | 3 24 12 76 255 | 3 76 12 79 256 | 3 76 79 77 257 | 3 77 79 80 258 | 3 77 80 78 259 | 3 78 80 81 260 | 3 16 82 12 261 | 3 12 82 79 262 | 3 82 83 79 263 | 3 79 83 80 264 | 3 83 84 80 265 | 3 80 84 81 266 | 3 16 20 82 267 | 3 82 20 85 268 | 3 82 85 83 269 | 3 83 85 86 270 | 3 83 86 84 271 | 3 84 86 87 272 | 3 20 24 85 273 | 3 85 24 76 274 | 3 85 76 86 275 | 3 86 76 77 276 | 3 86 77 87 277 | 3 87 77 78 278 | 3 17 18 88 279 | 3 88 18 89 280 | 3 18 22 89 281 | 3 89 22 90 282 | 3 22 21 90 283 | 3 90 21 91 284 | 3 21 17 91 285 | 3 91 17 88 286 | 3 88 89 92 287 | 3 92 89 93 288 | 3 89 90 93 289 | 3 93 90 94 290 | 3 90 91 94 291 | 3 94 91 95 292 | 3 91 88 95 293 | 3 95 88 92 -------------------------------------------------------------------------------- /PLY_Files/52_bottle.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 68 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 132 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 0.376298 0.40487 -0.639018 11 | -0.376298 0.40487 -0.639018 12 | -0.752595 0.40487 0 13 | -0.376298 0.40487 0.639018 14 | 0.376298 0.40487 0.639018 15 | 0.752595 0.40487 0 16 | 0.349169 0.80487 -0.591842 17 | -0.349169 0.80487 -0.591842 18 | -0.697463 0.80487 0 19 | -0.349169 0.80487 0.591842 20 | 0.349169 0.80487 0.591842 21 | 0.697463 0.80487 0 22 | 0.290537 1.24187 -0.493202 23 | -0.290537 1.24187 -0.493202 24 | -0.581074 1.24187 0 25 | -0.290537 1.24187 0.493202 26 | 0.290537 1.24187 0.493202 27 | 0.581074 1.24187 0 28 | 0.336043 1.69287 -0.570398 29 | -0.336043 1.69287 -0.570398 30 | -0.67121 1.69287 0 31 | -0.336043 1.69287 0.570398 32 | 0.336043 1.69287 0.570398 33 | 0.67121 1.69287 0 34 | 0.364921 2.16287 -0.61929 35 | -0.364921 2.16287 -0.61929 36 | -0.728967 2.16287 0 37 | -0.364921 2.16287 0.61929 38 | 0.364921 2.16287 0.61929 39 | 0.728967 2.16287 0 40 | 0.371922 2.56287 -0.634729 41 | -0.378923 2.56287 -0.634729 42 | -0.754346 2.56287 0.00257323 43 | -0.378923 2.56287 0.639876 44 | 0.371922 2.56287 0.639876 45 | 0.747345 2.56287 0.00257323 46 | 0.35792 2.94387 -0.607281 47 | -0.35792 2.94387 -0.607281 48 | -0.715841 2.94387 0 49 | -0.35792 2.94387 0.607281 50 | 0.35792 2.94387 0.607281 51 | 0.714966 2.94387 0 52 | 0.281786 3.36287 -0.477762 53 | -0.281786 3.36287 -0.477762 54 | -0.562696 3.36287 0 55 | -0.281786 3.36287 0.477762 56 | 0.281786 3.36287 0.477762 57 | 0.562696 3.36287 0 58 | 0.175022 3.67387 -0.297636 59 | -0.175022 3.67387 -0.297636 60 | -0.350044 3.67387 0 61 | -0.175022 3.67387 0.297636 62 | 0.175022 3.67387 0.297636 63 | 0.350044 3.67387 0 64 | 0.187274 4.04087 -0.317365 65 | -0.187274 4.04087 -0.317365 66 | -0.373672 4.04087 0 67 | -0.187274 4.04087 0.317365 68 | 0.187274 4.04087 0.317365 69 | 0.373672 4.04087 0 70 | 0.187274 4.40487 -0.317365 71 | -0.187274 4.40487 -0.317365 72 | -0.373672 4.40487 0 73 | -0.187274 4.40487 0.317365 74 | 0.187274 4.40487 0.317365 75 | 0.373672 4.40487 0 76 | 0 0.40487 0 77 | 0 4.40487 0 78 | 3 0 1 6 79 | 3 6 1 7 80 | 3 1 2 7 81 | 3 7 2 8 82 | 3 2 3 8 83 | 3 8 3 9 84 | 3 3 4 9 85 | 3 9 4 10 86 | 3 4 5 10 87 | 3 10 5 11 88 | 3 5 0 11 89 | 3 11 0 6 90 | 3 6 7 12 91 | 3 12 7 13 92 | 3 7 8 13 93 | 3 13 8 14 94 | 3 8 9 14 95 | 3 14 9 15 96 | 3 9 10 15 97 | 3 15 10 16 98 | 3 10 11 16 99 | 3 16 11 17 100 | 3 11 6 17 101 | 3 17 6 12 102 | 3 12 13 18 103 | 3 18 13 19 104 | 3 13 14 19 105 | 3 19 14 20 106 | 3 14 15 20 107 | 3 20 15 21 108 | 3 15 16 21 109 | 3 21 16 22 110 | 3 16 17 22 111 | 3 22 17 23 112 | 3 17 12 23 113 | 3 23 12 18 114 | 3 18 19 24 115 | 3 24 19 25 116 | 3 19 20 25 117 | 3 25 20 26 118 | 3 20 21 26 119 | 3 26 21 27 120 | 3 21 22 27 121 | 3 27 22 28 122 | 3 22 23 28 123 | 3 28 23 29 124 | 3 23 18 29 125 | 3 29 18 24 126 | 3 24 25 30 127 | 3 30 25 31 128 | 3 25 26 31 129 | 3 31 26 32 130 | 3 26 27 32 131 | 3 32 27 33 132 | 3 28 34 27 133 | 3 27 34 33 134 | 3 29 35 28 135 | 3 28 35 34 136 | 3 24 30 29 137 | 3 29 30 35 138 | 3 31 37 30 139 | 3 30 37 36 140 | 3 32 38 31 141 | 3 31 38 37 142 | 3 33 39 32 143 | 3 32 39 38 144 | 3 33 34 39 145 | 3 39 34 40 146 | 3 34 35 40 147 | 3 40 35 41 148 | 3 35 30 41 149 | 3 41 30 36 150 | 3 36 37 42 151 | 3 42 37 43 152 | 3 37 38 43 153 | 3 43 38 44 154 | 3 38 39 44 155 | 3 44 39 45 156 | 3 39 40 45 157 | 3 45 40 46 158 | 3 40 41 46 159 | 3 46 41 47 160 | 3 41 36 47 161 | 3 47 36 42 162 | 3 42 43 48 163 | 3 48 43 49 164 | 3 43 44 49 165 | 3 49 44 50 166 | 3 44 45 50 167 | 3 50 45 51 168 | 3 45 46 51 169 | 3 51 46 52 170 | 3 46 47 52 171 | 3 52 47 53 172 | 3 47 42 53 173 | 3 53 42 48 174 | 3 48 49 54 175 | 3 54 49 55 176 | 3 49 50 55 177 | 3 55 50 56 178 | 3 50 51 56 179 | 3 56 51 57 180 | 3 51 52 57 181 | 3 57 52 58 182 | 3 52 53 58 183 | 3 58 53 59 184 | 3 53 48 59 185 | 3 59 48 54 186 | 3 54 55 60 187 | 3 60 55 61 188 | 3 55 56 61 189 | 3 61 56 62 190 | 3 56 57 62 191 | 3 62 57 63 192 | 3 57 58 63 193 | 3 63 58 64 194 | 3 58 59 64 195 | 3 64 59 65 196 | 3 59 54 65 197 | 3 65 54 60 198 | 3 1 0 66 199 | 3 2 1 66 200 | 3 3 2 66 201 | 3 4 3 66 202 | 3 5 4 66 203 | 3 0 5 66 204 | 3 60 61 67 205 | 3 61 62 67 206 | 3 62 63 67 207 | 3 63 64 67 208 | 3 64 65 67 209 | 3 65 60 67 210 | 211 | -------------------------------------------------------------------------------- /PLY_Files/53_bunny.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | element vertex 70 4 | property float32 x 5 | property float32 y 6 | property float32 z 7 | element face 136 8 | property list uint8 int32 vertex_indices 9 | end_header 10 | 1.116 0.246 -0.008 11 | -0.61 -0.43 0.944 12 | 0.197 -0.658 -0.695 13 | -0.092 -0.322 0.399 14 | -0.795 -0.733 0.539 15 | -0.138 0.532 -0.055 16 | -0.32 -0.435 -0.545 17 | 1.382 -0.225 -0.624 18 | 0.437 -0.199 0.696 19 | 0.639 -0.761 -0.499 20 | -0.526 0.542 0.963 21 | 0.335 -0.757 -0.073 22 | 1.107 -0.148 0.163 23 | -0.53 -0.583 -0.112 24 | -0.955 0.162 0.982 25 | -0.128 -0.575 -0.002 26 | 0.37 -0.468 0.383 27 | 0.032 -0.609 -0.964 28 | -0.482 -0.576 -0.885 29 | 1.053 -0.32 -0.803 30 | -0.356 -0.082 1.095 31 | 0.815 -0.281 0.443 32 | -0.373 -0.396 0.421 33 | 1.206 -0.082 -0.293 34 | -1.076 -0.054 0.547 35 | -0.201 -0.012 0.784 36 | 0.868 -0.616 -0.057 37 | -1.008 -0.086 0.16 38 | 1.323 0.091 -0.73 39 | 1.041 0.304 -0.622 40 | 0.789 0.527 -0.765 41 | -0.195 0.003 0.509 42 | -1.094 -0.444 0.492 43 | -0.945 0.123 -0.284 44 | 0.94 0.253 0.242 45 | 0.615 0.157 0.573 46 | -0.826 0.263 0.277 47 | -0.489 0.187 -0.643 48 | -0.968 -0.268 0.933 49 | -0.804 -0.452 0.15 50 | -0.387 0.215 0.779 51 | -0.473 0.389 0.236 52 | 0.359 0.576 0.085 53 | -0.736 0.636 1.169 54 | -0.811 -0.415 -0.323 55 | -0.103 0.404 -0.562 56 | 0.616 0.387 0.39 57 | 0.055 0.795 -0.247 58 | -0.261 0.241 0.484 59 | 1.389 -0.005 -0.414 60 | 0.084 0.377 0.396 61 | -0.187 0.579 -0.966 62 | 0.176 0.704 -0.647 63 | 0.436 0.731 -0.182 64 | 0.902 0.486 -0.07 65 | -0.749 0.429 -0.17 66 | 0.412 0.427 -0.957 67 | -0.088 0.141 -0.894 68 | -0.472 0.255 -0.976 69 | 0.8 0.074 -0.982 70 | -0.577 -0.213 -0.956 71 | 0.656 -0.526 -0.946 72 | -0.842 0.403 0.718 73 | -0.323 0.464 0.972 74 | -0.045 0.314 1.242 75 | 0.861 0.004 0.368 76 | -0.593 0.252 0.711 77 | 0.189 -0.257 -0.917 78 | -0.749 0.088 1.019 79 | -0.566 0.024 1.065 80 | 3 35 21 65 81 | 3 10 68 66 82 | 3 52 56 51 83 | 3 12 23 0 84 | 3 31 8 50 85 | 3 30 54 0 86 | 3 29 23 49 87 | 3 22 4 39 88 | 3 19 26 9 89 | 3 16 11 26 90 | 3 4 38 32 91 | 3 48 31 50 92 | 3 67 57 56 93 | 3 67 56 59 94 | 3 67 59 61 95 | 3 67 61 17 96 | 3 67 17 60 97 | 3 67 60 57 98 | 3 2 11 15 99 | 3 22 39 13 100 | 3 26 21 16 101 | 3 47 42 53 102 | 3 29 30 0 103 | 3 9 26 11 104 | 3 56 57 51 105 | 3 61 2 17 106 | 3 55 41 5 107 | 3 46 35 34 108 | 3 19 23 26 109 | 3 3 15 16 110 | 3 25 64 20 111 | 3 5 47 45 112 | 3 46 50 35 113 | 3 42 46 54 114 | 3 7 28 49 115 | 3 27 32 24 116 | 3 21 26 12 117 | 3 19 61 59 118 | 3 6 37 60 119 | 3 39 4 32 120 | 3 28 7 59 121 | 3 41 36 48 122 | 3 57 60 58 123 | 3 14 38 68 124 | 3 46 42 50 125 | 3 39 44 13 126 | 3 34 12 0 127 | 3 21 8 16 128 | 3 0 54 34 129 | 3 25 22 31 130 | 3 15 13 6 131 | 3 47 5 42 132 | 3 35 8 21 133 | 3 0 23 29 134 | 3 44 37 6 135 | 3 53 54 30 136 | 3 43 62 14 137 | 3 59 56 30 138 | 3 58 37 45 139 | 3 45 51 58 140 | 3 9 61 19 141 | 3 10 66 62 142 | 3 22 25 1 143 | 3 23 12 26 144 | 3 44 33 37 145 | 3 8 31 3 146 | 3 3 16 8 147 | 3 15 6 2 148 | 3 47 53 52 149 | 3 15 22 13 150 | 3 9 11 2 151 | 3 48 50 41 152 | 3 44 39 27 153 | 3 13 44 6 154 | 3 54 46 34 155 | 3 22 3 31 156 | 3 25 20 1 157 | 3 58 51 57 158 | 3 49 23 7 159 | 3 4 22 1 160 | 3 12 34 65 161 | 3 42 5 50 162 | 3 53 42 54 163 | 3 45 52 51 164 | 3 7 23 19 165 | 3 38 4 1 166 | 3 37 55 45 167 | 3 14 24 38 168 | 3 18 6 60 169 | 3 58 60 37 170 | 3 29 59 30 171 | 3 9 2 61 172 | 3 41 55 36 173 | 3 30 52 53 174 | 3 29 28 59 175 | 3 52 45 47 176 | 3 36 24 62 177 | 3 44 27 33 178 | 3 38 24 32 179 | 3 59 7 19 180 | 3 32 27 39 181 | 3 22 15 3 182 | 3 48 40 25 183 | 3 31 48 25 184 | 3 29 49 28 185 | 3 17 2 6 186 | 3 60 17 18 187 | 3 6 18 17 188 | 3 36 55 33 189 | 3 27 36 33 190 | 3 11 16 15 191 | 3 37 33 55 192 | 3 24 14 62 193 | 3 55 5 45 194 | 3 24 36 27 195 | 3 63 25 40 196 | 3 40 48 66 197 | 3 63 64 25 198 | 3 50 8 35 199 | 3 50 5 41 200 | 3 30 56 52 201 | 3 65 34 35 202 | 3 65 21 12 203 | 3 43 10 62 204 | 3 64 69 20 205 | 3 62 66 36 206 | 3 66 48 36 207 | 3 10 43 68 208 | 3 40 68 69 209 | 3 63 40 69 210 | 3 68 43 14 211 | 3 63 69 64 212 | 3 40 66 68 213 | 3 69 1 20 214 | 3 68 38 69 215 | 3 69 38 1 -------------------------------------------------------------------------------- /example_submission_script.py: -------------------------------------------------------------------------------- 1 | import xmlrpc.client 2 | import os 3 | # 4 | # connect to localhost, port 4242 running the RPC server 5 | # 6 | proxy = xmlrpc.client.ServerProxy("http://localhost:4242/") 7 | multicall = xmlrpc.client.MultiCall(proxy) 8 | # 9 | # calc: function on the RPC server to route the origami 10 | # calc(projectName, helicalForm, helicalTurns, plyFile, sequenceFile): 11 | # projectName: short descriptive name, name of the generated folder 12 | # (write "M13.txt" to use default sequence) 13 | # helicalForm: 'Bform', 'Aform', 'Hybrid', 'Twisted' 14 | # helicalTurns: multiplied by 11 (Aforms) or 10.5 (Bform) 15 | # to get minimum edge length 16 | # plyFile: Path to ply file 17 | # sequenceFile: Path to sequence file 18 | # 19 | 20 | ply_dir = "C:/pyDAEDALUSX/PLY_Files" # path to directory containing input geometries 21 | 22 | for geom in os.listdir(ply_dir): 23 | ply = os.path.join(ply_dir, geom) # path to specific geometry file 24 | name = geom # project name 25 | multicall.calc(name,"Aform",4,ply,"M13.txt"); 26 | 27 | result = multicall() 28 | -------------------------------------------------------------------------------- /pyDAEDALUS/23SdomIIV_seq.txt: -------------------------------------------------------------------------------- 1 | GCCCTGGCAGTCAGAGGCGATGAAGGACGTGCTAATCTGCGATAAGCGTCGGTAAGGTGATATGAACCGTTATAACCGGCGATTTCCGAATGGGGAAACCCAGTGTGTTTCGACACACTATCATTAACTGAATCCATAGGTTAATGAGGCGAACCGGGGGAACTGAAACATCTAAGTACCCCGAGGAAAAGAAATCAACCGAGATTCCCCCAGTAGCGGCGAGCGAACGGGGAGCAGCCCAGAGCCTGAATCAGTGTGTGTGTTAGTGGAAGCGTCTGGAAAGGCGCGCGATACAGGGTGACAGCCCCGTACACAAAAATGCACATGCTGTGAGCTCGATGAGTAGGGCGGGACACGTGGTATCCTGTCTGAATATGGGGGGACCATCCTCCAAGGCTAAATACTCCTGACTGACCGATAGTGAACCAGTACCGTGAGGGAAAGGCGAAAAGAACCCCGGCGAGGGGAGTGAAAAAGAACCTGAAACCGTGTACGTACAAGCAGTGGGAGCACGCTTAGGCGTGTGACTGCGTACCTTTTGTATAATGGGTCAGCGACTTATATTCTGTAGCAAGGTTAACCGAATAGGGGAGCCGAAGGGAAACCGAGTCTTAACTGGGCGTTAAGTTGCAGGGTATAGACCCGAAACCCGGTGATCTAGCCATGGGCAGGTTGAAGGTTGGGTAACACTAACTGGAGGACCGAACCGACTAATGTTGAAAAATTAGCGGATGACTTGTGGCTGGGGGTGAAAGGCCAATCAAACCGGGAGATAGCTGGTTCTCCCCGAAAGCTATTTAGGTAGCGCCTCGTGAATTCATCTCCGGGGGTAGAGCACTGTTTCGGCAAGGGGGTCATCCCGACTTACCAACCCGATGCAAACTGCGAATACCGGAGAATGTTATCACGGGAGACACACGGCGGGTGCTAACGTCCGTCGTGAAGAGGGAAACAACCCAGACCGCCAGCTAAGGTCCCAAAGTCATGGTTAAGTGGGAAACGATGTGGGAAGGCCCAGACAGCCAGGATGTTGGCTTAGAAGCAGCCATCATTTAAAGAAAGCGTAATAGCTCACTGGTCGAGTCGGCCTGCGCGGAAGATGTAACGGGGCTAAACCATGCACCGAAGCTGCGGCAGCGACGCTTATGCGTTGTTGGGTAGGGGAGCGTTCTGTAAGCCTGCGAAGGTGTGCTGTGAGGCATGCTGGAGGTATCAGAAGTGCGAATGCTGACATAAGTAACGATAAAGCGGGTGAAAAGCCCGCTCGCCGGAAGACCAAGGGTTCCTGTCCAACGTTAATCGGGGCAGGGTGAGTCGACCCCTAAGGCGAGGCCGAAAGGCGTAGTCGATGGGAAACAGGTTAATATTCCTGTACTTGGTGTTACTGCGAAGGGGGGACGGAGAAGGCTATGTTGGCCGGGCGACGGTTGTCCCGGTTTAAGCGTGTAGGCTGGTTTTCCAGGCAAATCCGGAAAATCAAGGCTGAGGCGTGATGACGAGGCACTACGGTGCTGAAGCAACAAATGCCCTGCTTCCAGGAAAAGCCTCTAAGCATCAGGTAACATCAAATCGTACCCCAAACCGACACAGGTGGTCAGGTAGAGAATACCAAGGCGCTTGAGAGAACTCGGGTGAAGGAACTAGGCAAAATGGTGCCGTAACTTCGGGAGAAGGCACGCTGATATGTAGGTGAAGCGACTTGCTCGTGGAGCTGAAATCAGTCGAAGATACCAGCTGGCTGCAACTGTTTATTAAAAACACAGCACTGTGCAAACACGAAAGTGGACGTATACGGTGTGACGCCTGCCCGGTGCCGGAAGGTTAATTGATGGGGTTAGCGCAAGCGAAGCTCTTGATCGAAGCCCCGGTAAACGGCGGCCGTAACTATAACGGTCCTAAGGTAGCGAAATTCCTTGTCGGGTAAGTTCCGACCTGCACGAATGGCGTAATGATGGCCAGGCTGTCTCCACCCGAGACTCA 2 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/ABform Replace/enum_scaf_bases_DX.py: -------------------------------------------------------------------------------- 1 | import math 2 | 3 | 4 | def enum_scaf_bases_DX(route_real, route_vals, edge_length_mat_full): 5 | """ 6 | Enumerates scaffold bases for N-arm DX tile-based cages 7 | Inputs: route_real = row vector of vertices listed in visitation order 8 | (only real vertex IDs) 9 | route_vals = row vector of edge types, where the value at index 10 | j in route_vals is the edge type of the edge between the 11 | vertices route_real[j:j+1), wrapping around at end 12 | edge_length_mat_full = VxV sparse matrix of edge lengths 13 | Outputs: edge_bgn_vec = row vector of scaff nt IDs at which edge begins 14 | edge_fin_vec = row vector of scaff nt IDs at which edge finishes 15 | edge_type_vec = row vector of edge types, corresponding to 16 | edge_length_mat_full 17 | 2 is spanning tree edge: DX edge with 0 scaffold crossovers 18 | -3 is half of a non-spanning tree edge, connecting to vertex at 3' end 19 | -5 is half of a non-spanning tree edge, connecting to vertex at 5' end 20 | ########################################################################## 21 | by Sakul Ratanalert, MIT, Bathe Lab, 2016 22 | 23 | Copyright 2016. Massachusetts Institute of Technology. Rights Reserved. 24 | M.I.T. hereby makes following copyrightable material available to the 25 | public under GNU General Public License, version 2 (GPL-2.0). A copy of 26 | this license is available at https://opensource.org/licenses/GPL-2.0 27 | ########################################################################## 28 | """ 29 | # 30 | # If even: EdgeLength/2-8 31 | # EdgeLength/2-3 32 | # Elif odd: ceil(EdgeLength/2)+2 33 | # floor(EdgeLength/2)-2 34 | # 35 | # # Initialize output variables and length of route 36 | len_route = len(route_real) # length of route 37 | edge_bgn_vec = [] 38 | edge_fin_vec = [] 39 | edge_type_vec = [] 40 | 41 | for route_ID in range(len_route): # for each vertex in the route 42 | edge_bgn = route_real[route_ID] # current edge 43 | 44 | # # Find edge_fin, the other end of the edge 45 | if route_ID == len_route - 1: # if last vertex... 46 | edge_fin = route_real[0] # use first vertex in route. 47 | else: # else use next vertex 48 | edge_fin = route_real[route_ID + 1] 49 | 50 | # # Find edge_before, the vertex visited prior to edge_bgn 51 | if route_ID == 0: # if first vertex... 52 | edge_before = route_real[-1] # use last vertex in route. 53 | else: # else use previous vertex 54 | edge_before = route_real[route_ID - 1] 55 | 56 | # Get edge type: 2 (no scafold crossover) or -1 (half of an edge 57 | # with 1 scaffold crossover) 58 | route_val = route_vals[route_ID] 59 | 60 | len_edge = edge_length_mat_full[edge_bgn][edge_fin]['length'] 61 | 62 | if route_val == 2: # tree edge, edge with no scaff crossovers 63 | len_edge = int(len_edge) # len_edge should be int-able by now 64 | edge_bgn_vec = edge_bgn_vec + ([edge_bgn] * len_edge) 65 | edge_fin_vec = edge_fin_vec + ([edge_fin] * len_edge) 66 | edge_type_vec = edge_type_vec + ([route_vals[route_ID]] * len_edge) 67 | 68 | elif route_val == -1: # half non-tree edge 69 | # # Is it an even or odd multiple of 10.5? Is the length even/odd? 70 | quotient = round(len_edge / 11) 71 | quot_is_odd = quotient % 2 # 1 if odd, 0 if even multiple 72 | 73 | # # Adjust len_edge according to parity of len and quotient 74 | if quot_is_odd: # quotient is odd, scaff cross in middle +/-2 75 | len_edge_adjusted = len_edge 76 | 77 | # if returning half-strand, 3' end, 1 shorter 78 | if edge_before == edge_fin: 79 | route_val = -3 # -3 = returning half-strand 80 | len_half = math.ceil(len_edge_adjusted / 2.0)+2.0 # changed 81 | else: # outgoing half-strand, 5' end, 1 longer 82 | route_val = -5 # -5 = outgoing half-strand 83 | len_half = math.floor(len_edge_adjusted / 2.0)-2.0 # changed 84 | 85 | else: # quotient is even, scaffold 3/8 bp from middle 86 | # len is even, outgoing + returning = len_edge +/-11 87 | # if returning half-strand, 3' end, 1 shorter: 88 | if edge_before == edge_fin: 89 | route_val = -3 # -3 = returning half-strand 90 | 91 | if edge_bgn > edge_fin: # shorter half 92 | len_edge_adjusted = len_edge - 6 93 | else: # longer half 94 | len_edge_adjusted = len_edge + 16 95 | 96 | len_half = math.floor(len_edge_adjusted / 2.0) # changed 97 | 98 | else: # outgoing half-strand, 5' end, 1 longer 99 | route_val = -5 # -5 = outgoing half-strand 100 | 101 | if edge_bgn < edge_fin: # shorter half 102 | len_edge_adjusted = len_edge - 16 103 | else: # longer half 104 | len_edge_adjusted = len_edge + 6 105 | 106 | len_half = math.ceil(len_edge_adjusted / 2.0) 107 | 108 | len_half = int(len_half) # len_half should be int-able by now 109 | 110 | # # Add to edge_{bgn,fin,type}_vec 111 | edge_bgn_vec = edge_bgn_vec + ([edge_bgn] * len_half) 112 | edge_fin_vec = edge_fin_vec + ([edge_fin] * len_half) 113 | edge_type_vec = edge_type_vec + ([route_val] * len_half) 114 | 115 | return [edge_bgn_vec, edge_fin_vec, edge_type_vec] 116 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcbb/pyDAEDALUS/139f47bb27144a5121d8218a8fa4a61e9ae05832/pyDAEDALUS/Automated_Design/__init__.py -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/adj_scaf_nick_pos.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from copy import deepcopy 3 | from Automated_Design.util import intersect_lists 4 | 5 | 6 | def get_scaf_nick_pos(edges, route_real, edge_length_vec): 7 | first_node_in_route = route_real[0] 8 | second_node_in_route = route_real[1] 9 | min_node = min(first_node_in_route, second_node_in_route) 10 | max_node = max(first_node_in_route, second_node_in_route) 11 | 12 | edges = np.array(edges) 13 | from_nodes = np.where(edges[:, 0] == max_node)[0] 14 | to_nodes = np.where(edges[:, 1] == min_node)[0] 15 | 16 | # TODO: assured to always have 1 result? 17 | first_edge = intersect_lists(from_nodes, to_nodes)[0] 18 | 19 | first_edge_length = edge_length_vec[first_edge] 20 | if first_edge_length < 44: # == 33 21 | scaf_nick_pos = 16 22 | else: 23 | scaf_nick_pos = 19 24 | 25 | return scaf_nick_pos 26 | 27 | 28 | def adj_scaf_nick_pos(scaf_to_edge, scaf_nick_pos, num_bases): 29 | # Adjust the scaffold nick position so that there are scaf_nick_pos bases 30 | # upstream of scaffold nick. 31 | # Inputs: scaf_to_edge = Ex2 cell array, where each row corresponds to one 32 | # edge, 1st column is duplex from low ID to high ID vertex, 33 | # 2nd column is from high to low. Each element is a row vector 34 | # containing the scaffold base IDs in order on that duplex. 35 | # scaf_nick_pos = number of bases upstream of scaffold nick 36 | # num_bases = total number of scaffold bases 37 | # Outputs: scaf_to_edge_adj = scaf_to_edge with adjusted numbering 38 | ########################################################################### 39 | # by Sakul Ratanalert, MIT, Bathe Lab, 2016 40 | # 41 | # Copyright 2016. Massachusetts Institute of Technology. Rights Reserved. 42 | # M.I.T. hereby makes following copyrightable material available to the 43 | # public under GNU General Public License, version 2 (GPL-2.0). A copy of 44 | # this license is available at https://opensource.org/licenses/GPL-2.0 45 | ########################################################################### 46 | 47 | # # Initialize output vector 48 | scaf_to_edge_adj = deepcopy(scaf_to_edge) # row vec 49 | 50 | # # Adjust scaf_to_edge 51 | import numpy as np 52 | shape = np.array(scaf_to_edge_adj, dtype=np).shape # num_sides should be 2 53 | num_edges = shape[0] 54 | num_sides = shape[1] 55 | 56 | for edge_ID in range(num_edges): 57 | for sides_ID in range(num_sides): 58 | scaf_to_edge_adj[edge_ID][sides_ID] = adjust( 59 | scaf_to_edge[edge_ID][sides_ID], scaf_nick_pos, num_bases) 60 | 61 | return scaf_to_edge_adj 62 | 63 | 64 | def adjust(old_num_vec, scaf_nick_pos, num_bases): 65 | # Adjusts numbered vector by shifting by scaf_nick_pos bases, with 66 | # wraparound 67 | # Inputs: old_num_vec = numbered vector to shift 68 | # scaf_nick_pos = number of bases to shift by 69 | # num_bases = total number of bases in scaffold 70 | # Output: new_num_vec = adjusted numbered vector 71 | 72 | # Initialize 73 | new_num_vec = deepcopy(old_num_vec) 74 | 75 | for i in range(len(old_num_vec)): 76 | new_num = (int(old_num_vec[i]) - int(scaf_nick_pos)) % int(num_bases) 77 | 78 | # TODO: Doesn't this always return `new_num`? 79 | if new_num == num_bases: # if is now last base 80 | new_num_vec[i] = num_bases # set to last base 81 | else: 82 | new_num_vec[i] = new_num 83 | 84 | return new_num_vec 85 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/assign_scaf_to_edge.py: -------------------------------------------------------------------------------- 1 | from Automated_Design.util import intersect_lists, find 2 | 3 | 4 | def assign_scaf_to_edge(edges, num_edges, edge_type_mat, edge_bgn_vec, 5 | edge_fin_vec, edge_type_vec): 6 | """ 7 | # Assign enumerated scaffold bases to edges. Create vectors for each duplex 8 | # in each edge, identify to which scaffold base each edge base corresponds 9 | # Inputs: edges = Ex2 matrix where each row corresponds to one edge, 10 | # denoting the vertices being connected. 1st column > 2nd column 11 | # num_edges = number of edges, E 12 | # edge_length_mat_full = VxV sparse matrix of edge lengths 13 | # edge_bgn_vec = row vector of scaff nt IDs at which edge begins 14 | # edge_fin_vec = row vector of scaff nt IDs at which edge finishes 15 | # edge_type_vec = row vector of edge types, corresponding to 16 | # edge_length_mat_full 17 | # 2 is spanning tree edge: DX edge with 0 scaffold crossovers 18 | # -3 is half of a non-spanning tree edge, connecting to vertex at 3' end 19 | # -5 is half of a non-spanning tree edge, connecting to vertex at 5' end 20 | # Outputs: scaf_to_edge = Ex2 cell array, where each row corresponds to one 21 | # edge, 1st column is duplex from low ID to high ID vertex, 22 | # 2nd column is from high to low. Each element is a row vector 23 | # containing the scaffold base IDs in order on that duplex. 24 | ########################################################################### 25 | # by Sakul Ratanalert, MIT, Bathe Lab, 2016 26 | # 27 | # Copyright 2016. Massachusetts Institute of Technology. Rights Reserved. 28 | # M.I.T. hereby makes following copyrightable material available to the 29 | # public under GNU General Public License, version 2 (GPL-2.0). A copy of 30 | # this license is available at https://opensource.org/licenses/GPL-2.0 31 | ########################################################################### 32 | """ 33 | 34 | scaf_to_edge = [] 35 | for edge_ID in range(num_edges): # TODO: convert to `for edge in edges:` 36 | # first column low to high, second column high to low 37 | row = [None, None] 38 | for high_to_low in [1, 2]: # for each duplex direction on edge 39 | col = 2 - high_to_low 40 | 41 | if high_to_low == 1: # high to low 5' to 3' 42 | edge_bgn = edges[edge_ID][0] 43 | edge_fin = edges[edge_ID][1] 44 | else: # low_to_high 5' to 3' 45 | edge_bgn = edges[edge_ID][1] 46 | edge_fin = edges[edge_ID][0] 47 | 48 | edge_type = edge_type_mat[edge_bgn][edge_fin]['type'] 49 | if edge_type == 2: # tree edge # TODO: extract into constant 50 | bases = intersect_lists(find(edge_bgn_vec, edge_bgn), 51 | find(edge_fin_vec, edge_fin)) 52 | else: # non-tree edge 53 | bases_all = intersect_lists(find(edge_bgn_vec, edge_bgn), 54 | find(edge_fin_vec, edge_fin)) 55 | bases_5 = intersect_lists(bases_all, find(edge_type_vec, -5)) 56 | bases_3 = intersect_lists(bases_all, find(edge_type_vec, -3)) 57 | 58 | bases = bases_5 + bases_3 59 | 60 | row[col] = bases 61 | 62 | scaf_to_edge.append(row) 63 | 64 | return scaf_to_edge 65 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/csv_staples.py: -------------------------------------------------------------------------------- 1 | from os import path 2 | 3 | 4 | def csv_staples(full_file_name, named_stap_seq_list, 5 | results_foldername): # pragma: no cover 6 | """ 7 | Convert staple list to .csv file. File is saved into `results_foldername`. 8 | 9 | Parameters 10 | ---------- 11 | full_file_name : str 12 | String containing full name of file 13 | named_stap_seq_list : list 14 | List with second column identical to stap_seq_list, first column 15 | contains string of staple name. 16 | results_foldername : str 17 | Foldername to save this file into. 18 | 19 | Returns 20 | ------- 21 | None 22 | """ 23 | 24 | full_filename = path.join(results_foldername, 25 | 'staples_' + full_file_name + '.csv') 26 | fid = open(full_filename, 'w') 27 | 28 | num_stap = len(named_stap_seq_list) 29 | 30 | for stap_ID in range(num_stap): 31 | fid.write("{},{}\n".format( 32 | named_stap_seq_list[stap_ID][0], named_stap_seq_list[stap_ID][1])) 33 | 34 | fid.close() 35 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/designate_edge_type.py: -------------------------------------------------------------------------------- 1 | from networkx.algorithms.mst import prim_mst 2 | 3 | 4 | def designate_edge_type(full_graph): 5 | """ 6 | Calculate minimum spanning tree, and label the links in the full graph 7 | that are also in the min spanning tree as such: 8 | 1 is non-spanning tree edge: DX edge with 1 scaffold crossover 9 | 2 is spanning tree edge: DX edge with 0 scaffold crossovers 10 | """ 11 | tree = prim_mst(full_graph) 12 | 13 | # networkx undirected networks already implicitly can be considered a 14 | # symmetrical matrix 15 | full_tree = tree 16 | 17 | tree_edges = full_tree.edges() 18 | for edge in full_graph.edges(): 19 | if edge in tree_edges: 20 | type = 2 21 | else: 22 | type = 1 23 | i = edge[0] 24 | j = edge[1] 25 | full_graph[i][j]['type'] = type 26 | 27 | return full_graph 28 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/gen_schlegel.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from matplotlib import pyplot as plt 3 | 4 | from Automated_Design.constants import VERMILLION, REDPURPLE, SKYBLUE, WHITE 5 | 6 | 7 | def create_2d_mapping(edges, coordinates, faces): 8 | # Choose Biggest Face: 9 | big_face = max(faces, key=len) 10 | 11 | # Initialize: 12 | num_face_vert = len(big_face) 13 | num_vert = len(coordinates) 14 | 15 | # Initialize xycoord 16 | xycoord = np.zeros(shape=(num_vert, 2)) 17 | num_repeat = 10 * num_vert # number of iterations to calculate xycoord 18 | 19 | # Set big face on unit circle 20 | angle = 2. * np.pi / num_face_vert 21 | 22 | for i in range(num_face_vert): # for each vertex in big face 23 | xycoord[big_face[i]] = [np.cos(angle * i), np.sin(angle * i)] 24 | 25 | # Calculate positions of other vertices through iterative process 26 | for repeat_ID in range(num_repeat): 27 | 28 | for vert_ID in range(num_vert): # For each vertex, 29 | if vert_ID not in big_face: # that's not in big_face, 30 | # move the xycoord of the given vertex to the centerpont 31 | # of all neighboring nodes. 32 | 33 | # # Find vert_ID 34 | find_vert_row, find_vert_col = np.where(edges == vert_ID) 35 | 36 | # # Find neighbors 37 | neighbors = [] 38 | for row, col in zip(find_vert_row, find_vert_col): 39 | find_vert_col_nbr = 1 - col 40 | neighbors.append(edges[row, find_vert_col_nbr]) 41 | neighbors = np.array(neighbors, dtype=np.int) 42 | 43 | # # Get neighbor coords 44 | nbr_coord = xycoord[neighbors, :] 45 | 46 | # # # Find midpoint 47 | num_nbr = len(find_vert_col) 48 | midpt = np.array( 49 | [sum(nbr_coord[:, 0]), sum(nbr_coord[:, 1])] 50 | ) / num_nbr 51 | 52 | # # Store as new xycoord for vert_ID 53 | xycoord[vert_ID, :] = midpt 54 | return xycoord 55 | 56 | 57 | def plot_schlegel(edges, edge_type_graph, xycoord, 58 | schlegel_filename): # pragma: no cover 59 | f = plt.figure(2, figsize=(8, 8)) 60 | f.clf() 61 | plt.xlim((-1.2, 1.2)) 62 | plt.ylim((-1.2, 1.2)) 63 | plt.axis('off') 64 | 65 | for edge in edges: 66 | # Get end vertices 67 | edge_bgn, edge_fin = edge 68 | 69 | # Get end vertex coordinates 70 | x_bgn = xycoord[edge_bgn, 0] 71 | y_bgn = xycoord[edge_bgn, 1] 72 | 73 | x_fin = xycoord[edge_fin, 0] 74 | y_fin = xycoord[edge_fin, 1] 75 | 76 | # Create vectors from beginning vertex to end 77 | x_vec = [x_bgn, x_fin] 78 | y_vec = [y_bgn, y_fin] 79 | 80 | # Only check the edge type if `edge_type_graph` is not None. If it is 81 | # None, default to coloring edges the same as if all edges weren't a 82 | # part of the spanning tree. 83 | if edge_type_graph is not None \ 84 | and (edge_type_graph.edge[edge_bgn][edge_fin]['type'] == 1): 85 | plt.plot(x_vec, y_vec, linestyle='-', color=SKYBLUE, linewidth=5) 86 | else: # if this is a non-tree edge: 87 | plt.plot(x_vec, y_vec, linestyle='-', color=REDPURPLE, linewidth=8) 88 | 89 | # Plot nodes: 90 | plt.plot(xycoord[:, 0], xycoord[:, 1], 'o', 91 | color=VERMILLION, markeredgecolor=VERMILLION, markersize=15) 92 | 93 | # Plot node labels: 94 | for i, node_xy in enumerate(xycoord): 95 | x, y = node_xy 96 | plt.text(x, y, str(i), color=WHITE, fontname='serif', 97 | horizontalalignment='center', verticalalignment='center') 98 | 99 | plt.savefig(schlegel_filename, bbox_inches='tight') 100 | 101 | 102 | def gen_schlegel(edges, coordinates, faces, schlegel_filename, 103 | edge_type_graph=None): # pragma: no cover 104 | """ 105 | Plots vertices and edges in Schlegel diagram, tracing scaffold path in 106 | colored lines. 107 | 108 | The three dimensional structure is mapped onto a 2d surface. This new 109 | surface is visualized, saved, and optionally displayed to screen. Edges 110 | that are a part of the previously calculated spanning tree (that is, the 111 | scaffold path) as marked in `edge_type_graph` are highlighted a different 112 | color. 113 | 114 | Parameters 115 | ---------- 116 | edges : numpy.ndarray 117 | Ex2 matrix where each row corresponds to one edge, denoting the 118 | vertices being connected. 1st column > 2nd column; E = number of edges 119 | coordinates : numpy.ndarray 120 | Vx3 matrix of spatial coordinates of vertices; V = number of vertices. 121 | faces : list 122 | Fx2 cell matrix, where F is the number of faces. The first column 123 | details how many vertices the face has. The second column details the 124 | vertex IDs of the face. 125 | schlegel_filename : str 126 | Filename pointing at where to save the generated plot. 127 | edge_type_graph : networkx.classes.graph.Graph 128 | A graph the links have the 'type' property. That property can have one 129 | of two values: 130 | - 1 is non-spanning tree edge: DX edge with 1 scaffold crossover 131 | - 2 is spanning tree edge: DX edge with 0 scaffold crossovers 132 | 133 | Returns 134 | ------- 135 | xycoords 136 | The 2d mapping used to plot the figure. 137 | """ 138 | 139 | xycoord = create_2d_mapping(edges, coordinates, faces) 140 | 141 | plot_schlegel(edges, edge_type_graph, xycoord, schlegel_filename) 142 | 143 | return xycoord 144 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/gen_stap_seq.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | 4 | def gen_stap_seq(staples, scaf_seq, staple_name, scaf_name, 5 | len_scaf_used): 6 | """ 7 | Generate staple sequences from scaffold sequence. 8 | 9 | Parameters 10 | ---------- 11 | staples : list 12 | List with E rows, each row contains another list. Some sub-lists may 13 | be empty as fragments are combined into full staples. Columns 0-5 14 | contain vertex staples, while 6+ contain edge staples. 15 | scaf_seq : str 16 | String of scaffold, length may be longer than 17 | required. First nucleotide will be placed at index 1 18 | short_name : str 19 | string to name staples, may be same as file_name 20 | scaf_name : str 21 | name of scaffold (string) 22 | len_scaf_used : int 23 | length of scaffold used, = 2*sum(edge_length_vec) 24 | 25 | Returns 26 | ------- 27 | stap_seq 28 | List same dimensions as staples, each cell contains string of 29 | staple's sequence 30 | stap_seq_list 31 | stap_seq arranged in a 1-column list 32 | stap_list 33 | staples arranged in the same 1-column list 34 | named_stap_seq_list 35 | List with second column identical to stap_seq_list, first column 36 | contains string of staple name 37 | """ 38 | 39 | # # Initialize outputs 40 | num_edges = len(staples) 41 | 42 | stap_seq = [] 43 | stap_seq_list = [] 44 | stap_list = [] 45 | named_stap_seq_list = [] 46 | 47 | for edge_ID in range(num_edges): 48 | staps_for_this_edge = [] 49 | for stap_ID in range(len(staples[edge_ID])): 50 | stap = staples[edge_ID][stap_ID] # obtain staple index information 51 | seq = u'' # initialize string 52 | for nt_ID in stap: 53 | # # because A binds to T, and G binds to C... 54 | if (nt_ID is None) or (scaf_seq[nt_ID] == 'A'): 55 | seq += 'T' 56 | elif scaf_seq[nt_ID] == 'T': 57 | seq += 'A' 58 | elif scaf_seq[nt_ID] == 'G': 59 | seq += 'C' 60 | elif scaf_seq[nt_ID] == 'C': 61 | seq += 'G' 62 | elif scaf_seq[nt_ID] == 'U': # in case user inputs RNA seq 63 | seq += 'A' 64 | else: 65 | # Error -- unrecognized nucleotide in scaffold sequence 66 | assert False, 'Unrecognized nucleotide in scaffold sequence' 67 | 68 | staps_for_this_edge.append(seq) 69 | 70 | if seq: # if seq exists (may have been blank) 71 | stap_seq_list.append(seq) # store seq in stap_seq_list 72 | 73 | # # Store seq in named_stap_seq_list. First number is Edge ID, 74 | # # Second is 5' end of staple. Third indicates vertex or edge 75 | # # staple. 76 | if stap_ID <= 3: # Vertex staple 77 | named_stap_seq_a = staple_name + '_{}-{}-V'.format( 78 | edge_ID, stap[0]) 79 | else: # Edge staple 80 | named_stap_seq_a = staple_name + '_{}-{}-E'.format( 81 | edge_ID, stap[0]) 82 | named_stap_seq_b = seq 83 | named_stap_seq_list.append( 84 | [named_stap_seq_a, named_stap_seq_b]) 85 | 86 | stap_list.append(stap) # store stap in stap_list 87 | stap_seq.append(staps_for_this_edge) 88 | 89 | named_stap_seq_list.append([None, None]) 90 | 91 | # # Add sequence of scaffold at end 92 | block_size = 10000 93 | if len_scaf_used > block_size: # now for readabiliy, was for excel limits 94 | num_mults = int(np.floor(float(len_scaf_used) / block_size)) 95 | # leftover = len_scaf_used % 10000 96 | for i in range(num_mults): 97 | start_i = i * block_size 98 | end_i = (i + 1) * block_size 99 | named_stap_seq_a = scaf_name + '_({}-{})'.format(start_i, end_i-1) 100 | named_stap_seq_b = scaf_seq[start_i:end_i] 101 | named_stap_seq_list.append([named_stap_seq_a, named_stap_seq_b]) 102 | 103 | start_i = num_mults * block_size 104 | end_i = len_scaf_used 105 | named_stap_seq_a = scaf_name + '_({}-{})'.format(start_i, end_i-1) 106 | named_stap_seq_b = scaf_seq[start_i:end_i] 107 | named_stap_seq_list.append([named_stap_seq_a, named_stap_seq_b]) 108 | 109 | else: 110 | named_stap_seq_a = scaf_name + '_(0-{})'.format(len_scaf_used-1) 111 | named_stap_seq_b = scaf_seq[:len_scaf_used] 112 | named_stap_seq_list.append([named_stap_seq_a, named_stap_seq_b]) 113 | 114 | return [stap_seq, stap_seq_list, stap_list, named_stap_seq_list] 115 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/gen_vert_to_face.py: -------------------------------------------------------------------------------- 1 | 2 | def gen_vert_to_face(num_vert, faces): 3 | 4 | vert_to_face = [[] for i in range(num_vert)] # a list of empty lists 5 | for face_ID in range(len(faces)): 6 | face = faces[face_ID] 7 | for vert_face_ID in face: 8 | vert_to_face[vert_face_ID].append(face_ID) 9 | 10 | return vert_to_face 11 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/set_routing_direction.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from networkx.algorithms.simple_paths import all_simple_paths 3 | 4 | 5 | def pick_longest_path(paths): 6 | return max(list(paths), key=len) 7 | 8 | 9 | def dereference_pseudonodes_in_path(path_with_pseudonodes, pseudo_vert): 10 | path_with_only_real_nodes = [] 11 | for node in path_with_pseudonodes: 12 | dereferenced = pseudo_vert[node] 13 | path_with_only_real_nodes.append(dereferenced) 14 | return path_with_only_real_nodes 15 | 16 | 17 | def check_direction(route_real, vert_to_face, faces): 18 | """ 19 | Since faces are originally given in counterclockwise order, comparing 20 | a sure-to-be-face-part-of-a-face's order to an arbitrary face will let you 21 | know if the current ordering is clockwise or counterclockwise. Return 22 | False if the former and True if the latter. 23 | """ 24 | 25 | # every face has at least three nodes and three is enough to detect 26 | # direction, so only grab first three 27 | first_face_route = np.array(route_real[0:3]) 28 | 29 | # should just have one overlapping face 30 | vtf_1 = vert_to_face[first_face_route[0]] 31 | vtf_2 = vert_to_face[first_face_route[1]] 32 | vtf_3 = vert_to_face[first_face_route[2]] 33 | first_face_ID = set(vtf_1)\ 34 | .intersection(set(vtf_2))\ 35 | .intersection(set(vtf_3)).pop() 36 | 37 | first_face = faces[first_face_ID] 38 | 39 | check_cycle = first_face + first_face 40 | correct_direction = 0 41 | for check in range(len(first_face)): # faces were given initially as 42 | excerpt_to_check = check_cycle[check:(check + 3)] 43 | distance = np.linalg.norm(first_face_route - excerpt_to_check) 44 | if distance == 0: # that is, if there is a match 45 | correct_direction = correct_direction + 1 46 | 47 | # 0->wrong direction. 1->right direction. 2 or more -> should never 48 | assert correct_direction < 2 49 | 50 | if correct_direction == 0: # routing is clockwise, wrong direction 51 | return False 52 | else: 53 | return True 54 | 55 | 56 | def set_routing_direction(edge_type_mat_allNodes, num_vert, pseudo_vert, 57 | faces, vert_to_face): 58 | """ 59 | Sets routing direction for traversing scaffold route path 60 | 61 | Parameters 62 | ---------- 63 | edge_type_mat_allNodes : networkx.classes.digraph.DiGraph 64 | Network representation including link types. Link types have the 65 | following possible values: 66 | -1 is half of a non-spanning tree edge (one side of scaffold 67 | crossover) 68 | 2 is spanning tree edge: DX edge with 0 scaffold crossovers 69 | num_vert : int 70 | number of vertices, V 71 | pseudo_vert : list 72 | row vector where value j at index i indicate that 73 | vertex i corresponds to vertex j, one of the V real vertices 74 | faces : list 75 | List of lists. The first dimension represents the face. The 76 | second dimension holds the index all nodes creating that face. 77 | vert_to_face : list 78 | List of lists. The first dimension represents the node. The 79 | second dimension holds the index of all faces that node is a part of. 80 | 81 | Returns 82 | ------- 83 | route_real 84 | row vector of vertices listed in visitation order (only real vertex 85 | IDs) 86 | route_vals 87 | row vector of edge types, where the value at index j in route_vals is 88 | the edge type of the edge between the vertices route_real(j:j+1), 89 | wrapping around at end 90 | """ 91 | 92 | # Choose a starting connected node (arbitrary start position). 93 | # Vertices #1-#V (V = number of vertices) are no longer connected in the 94 | # graph network 95 | start_node = 2*num_vert+2 # this node is a pseudo-node at Vertex 1 96 | 97 | next_nodes = edge_type_mat_allNodes.neighbors(start_node) # you'll have 2 98 | # TODO: Convert to generator, since you only need to make the second 99 | # path if the first is the wrong direction? 100 | for next_node in next_nodes: 101 | paths = all_simple_paths( 102 | edge_type_mat_allNodes, start_node, next_node) 103 | 104 | # you'll have one 1-length path because they're neighbors. You want 105 | # the other path that includes all the other nodes: 106 | path = pick_longest_path(paths) 107 | 108 | route_real = path 109 | temp_route_real = route_real + [route_real[0]] 110 | route_vals = [edge_type_mat_allNodes 111 | [temp_route_real[i]][temp_route_real[i+1]]['type'] 112 | for i in range(len(route_real))] 113 | 114 | dereferenced_path = dereference_pseudonodes_in_path(path, pseudo_vert) 115 | route_real = dereferenced_path 116 | 117 | if check_direction(route_real, vert_to_face, faces): 118 | # For consistency, start routing at a tree edge (route_vals = 2) 119 | start_route_list=[] 120 | for i in range(len(route_real)): 121 | if route_real[i] == 0 and route_vals[i] == 2: 122 | start_route_list.append(i) 123 | start_route = start_route_list[0] # in case there are multiple choices 124 | # 125 | # Shift route_real and route_vals to start at start_route 126 | route_real = route_real[start_route:] + route_real[:start_route] 127 | route_vals = route_vals[start_route:] + route_vals[:start_route] 128 | return [route_real, route_vals] 129 | 130 | raise Exception("one of the two above should have returned") 131 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/split_edge.py: -------------------------------------------------------------------------------- 1 | def split_edge(edge_type_mat): 2 | """ 3 | Add two nodes for each nontree edge to implement scaffold crossovers. 4 | Added nodes (pseudo-vertices) have a reference vertex (one of the V real 5 | vertices) to maintain relative spatial coordinates among all 6 | vertices. 7 | 8 | Parameters 9 | ---------- 10 | edge_type_mat : networkx.classes.digraph.DiGraph 11 | sparse matrix where 12 | 1 is non-spanning tree edge: DX edge with 1 scaffold crossover 13 | 2 is spanning tree edge: DX edge with 0 scaffold crossovers 14 | Returns 15 | ------- 16 | edge_type_mat_wHalfs 17 | VxV sparse matrix where 18 | -1 is half of a non-spanning tree edge (one side of scaffold 19 | crossover) 20 | 2 is spanning tree edge: DX edge with 0 scaffold crossovers 21 | pseudo_vert 22 | row vector where value j at index i indicate that vertex i corresponds 23 | to vertex j, one of the V real vertices 24 | """ 25 | # # Initialize output variables. These will be augmented from input vars 26 | edge_type_mat_wHalfs = edge_type_mat.copy() 27 | 28 | # Start with known nodes. Pseudo nodes added to graph as needed. 29 | pseudo_vert = edge_type_mat_wHalfs.nodes() 30 | 31 | non_tree_edges = [edge for edge in edge_type_mat.edges(data=True) 32 | if edge[2]['type'] == 1] 33 | 34 | # # ID non-tree edges (value 1), replace with 2 half-edges (value = -1) 35 | # edges = edge_type_mat.edges() 36 | # for i in range(num_vert): 37 | # for j in range(num_vert): 38 | # if (i, j) in edges: 39 | # properties = edge_type_mat[i][j] 40 | # if properties['type'] == 1: 41 | # !! replace the next two lines with the above 6 if you want an exact 42 | # match with the matlab code. (else, order of pseudonodes not assured) 43 | for edge in non_tree_edges: 44 | i, j, properties = edge 45 | # `i` is the node that stays. `j` is cut off and replaced by pseudo 46 | # vert. Since this digraph was built from a graph, a link from 2, 3 47 | # will also have a link from 3, 2. Meaning in the 2, 3 case, you'll 48 | # keep 2 and replace 3. And in teh 3, 2 case, you'll keep 3 and 49 | # replace 2. 50 | 51 | index_of_new_vert = len(pseudo_vert) 52 | properties['type'] = -1 53 | 54 | pseudo_vert.append(j) # vert_list[new_node_id] = original_node_id 55 | edge_type_mat_wHalfs.remove_edge(i, j) 56 | 57 | edge_type_mat_wHalfs.add_node(index_of_new_vert) 58 | edge_type_mat_wHalfs.add_edge(i, index_of_new_vert, 59 | attr_dict=properties) 60 | edge_type_mat_wHalfs.add_edge(index_of_new_vert, i, 61 | attr_dict=properties) 62 | 63 | return edge_type_mat_wHalfs, pseudo_vert 64 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/split_vert.py: -------------------------------------------------------------------------------- 1 | from Automated_Design.arrange_neighbors import arrange_neighbors 2 | 3 | 4 | def split_vert(edge_type_mat_wHalfs, pseudo_vert, num_vert, vert_to_face): 5 | """ 6 | Splits vertices into N nodes, where N is the degree of the vertex. 7 | 8 | Parameters 9 | ---------- 10 | edge_type_mat_wHalfs : networkx.classes.digraph.DiGraph 11 | VxV sparse matrix where 12 | -1 is half of a non-spanning tree edge (one side of scaffold 13 | crossover) 14 | 2 is spanning tree edge: DX edge with 0 scaffold crossovers 15 | pseudo_vert : list 16 | row vector where value j at index i indicate that 17 | vertex i corresponds to vertex j, one of the V real vertices 18 | num_vert : int 19 | number of vertices, V 20 | vert_to_face : list 21 | Vx1 cell array, each row has a row vector listing the face IDs the 22 | particular vertex belongs to 23 | 24 | Returns 25 | ------- 26 | edge_type_mat_allNodes 27 | sparse matrix where 28 | -1 is half of a non-spanning tree edge (one side of scaffold 29 | crossover) 30 | 2 is spanning tree edge: DX edge with 0 scaffold crossovers 31 | pseudo_vert 32 | updated to include new pseudo-vertices 33 | """ 34 | 35 | # # Initialize edge_type_mat_allNodes. It will be augmented from _wHalfs 36 | edge_type_mat_allNodes = edge_type_mat_wHalfs.copy() 37 | 38 | # # Initialize face_storage matrix for pseudo nodes added in this function 39 | face_assign = [None] * len(pseudo_vert) 40 | 41 | for vert_ID in range(num_vert): # for each real vertex 42 | neighbors = edge_type_mat_allNodes.in_edges(vert_ID, data=True) 43 | 44 | # # arrange_neighbors identifies which neighboring vertices share faces 45 | # # and adds nodes at the vertex to route the scaffold around the 46 | # # vertex vert_ID accordingly 47 | edge_type_mat_allNodes, pseudo_vert, face_assign = arrange_neighbors( 48 | edge_type_mat_allNodes, pseudo_vert, vert_ID, neighbors, 49 | vert_to_face, face_assign) 50 | return edge_type_mat_allNodes, pseudo_vert 51 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/util.py: -------------------------------------------------------------------------------- 1 | import networkx as nx 2 | import numpy as np 3 | 4 | 5 | def generate_graph(num_vert, edges, edge_length_vec): 6 | graph = nx.Graph() 7 | for n in range(num_vert): 8 | graph.add_node(n) 9 | for edge, length in zip(edges, edge_length_vec): 10 | graph.add_edge(edge[0], edge[1], length=float(length)) 11 | # TODO: verify the length property is not used as 'weight' in 12 | # spanning tree alg. 13 | 14 | return graph 15 | 16 | 17 | def intersect_lists(a, b): 18 | # in case `a` and `b` are np.arrays: 19 | if type(a) == np.ndarray: 20 | a = list(a.flatten()) 21 | if type(b) == np.ndarray: 22 | b = list(b.flatten()) 23 | 24 | # TODO: rewrite in a way that preverves order they're seen in? 25 | 26 | thing = set(a).intersection(set(b)) 27 | return sorted(list(thing)) 28 | 29 | 30 | def find(iterable, val): 31 | # A close-enough-to-a-match to matlab's `find` function. Ideally, usage of 32 | # this function will be refactored out. 33 | 34 | # Some times, data comes in as an array. Directly computing array equality 35 | # breaks, so they first need converted over to iterables. 36 | # If arrays, it is assumed the iterable is two dimensions and val is one. 37 | 38 | if type(iterable) == np.ndarray: 39 | iterable = [list(item) for item in iterable] 40 | if type(val) == np.ndarray: 41 | val = list(val) 42 | 43 | return [i for i in range(len(iterable)) if iterable[i] == val] 44 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/xx_ConstArchive/constants_20190803.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | 4 | SCAF_SEQ = 'GAGCGCAACGCAATTAATGTGCGCCCTGTAGCGGCGCATTAAGCGCGGCGGGTGTGGTGGTTACGCGCAGCGTGACCGCTACACTTGCCAGCGCCCTAGCGCCCGCTCCTTTCGCTTTCTTCCCTTCCTTTCTCGCCACGTTCGCCGGCTTTCCCCGTCAAGCTCTAAATCGGGGGCTCCCTTTAGGGTTCCGATTTAGTGCTTTACGGCACCTCGACCCCAAAAAACTTGATTAGGGTGATGGTTCACGTAGTGGGCCATCGCCCTGATAGACGGTTTTTCGCCCTTTGACGTTGGAGTCCACGTTCTTTAATAGTGGACTCTTGTTCCAAACTGGAACAACACTCAACCCTATCTCGGTCTATTCTTTTGATTTATAAGGGATTTTGCCGATTTCGGCCTATTGGTTAAAAAATGAGCTGATTTAACAAAAATTTAACGCGAATTACAACCGGGGTACATATGATTGGGGTCTGACGCTCAGTGGAACGAAAACTCACGTTAAGGGATTTTGGTCATGAGATTATCAAAAAGGATCTTCACCTAGATCCTTTTAAATTAAAAATGAAGTTTTAAATCAATCTAAAGTATATATGAGTAAACTTGGTCTGACAGTTACCAATGCTTAATCAGTGAGGCACCTATCTCAGCGATCTGTCTATTTCGTTCATCCATAGTTGCCTGACTCCCCGTCGTGTAGATAACTACGATACGGGAGGGCTTACCATCTGGCCCCAGTGCTGCAATGATACCGCGAGACCCACGCTCACCGGCTCCAGATTTATCAGCAATAAACCAGCCAGCCGGAAGGGCCGAGCGCAtAAGTGGTCCTGCAACTTTATCCGCCTCCATCCAGTCTATTAATTGTTGCCGGGAAGCTAGAGTAAGTAGTTCGCCAGTTAATAGTTTGCGCAACGTTGTTGCCATTGCTACAGGCATCGTGGTGTCACGCTCGTCGTTTGGTATGGCTTCATTCAGCTCCGGTTCCCAACGATCAAGGCGAGTTACATGATCCCCCATGTTGTGCAAAAAAGCGGTTAGCTCCTTCGGTCCTCCGATCGTTGTCAGAAGTAAGTTGGCCGCAGTGTTATCACTCATGGTTATGGCAGCACTGCATAATTCTCTTACTGTCATGCCATCCGTAAGATGCTTTTCTGTGACTGGTGAGTACTCAACCAAGTCATTCTGAGAATAGTGTATGCGGCGACCGAGTTGCTCTTGCCCGGCGTCAATACGGGATAATACCGCGCCACATAGCAGAACTTTAAAAGTGCTCATCATTGGAAAACGTTCTTCGGGGCGAAAACTCTCAAGGATCTTACCGCTGTTGAGATCCAGTTCGATGTAACCCACTCGTGCACCCAACTGATCTTCAGCATCTTTTACTTTCACCAGCGTTTCTGGGTGAGCAAAAACAGGAAGGCAAAATGCCGCAAAAAAGGGAATAAGGGCGACACGGAAATGTTGAATACTCATACTCTTCCTTTTTCAATATTATTGAAGCATTTATCAGGGTTATTGTCTCATGAGCGGATACATATTTGAATGTATTTAGAAAAATAAACAAATAGGGGTTCCGCGCACATTTCCCCGAAAAGTGCCACCTGACGTCTAAGAAACCATTATTATCATGACATTAACCTATAAAAATAGGCGTATCACGAGGCCCTTTCGTCGAATTCGTCGTCGTCCCCTCAAACTCTTGGGTGGAGAGGCTATTCGTTTAAGGTCACATCGCATGTAATTTACTTATTCTCTGTTGTTGAGCCACCCGGGCGCCAGATTTTGTTTAAAGCTTTGTCTCTTAGTTTGTATAGACAGATTCAGAGTGCAAGGTTTCGTTCGCTCGTACCTGGTTTTCCCTGGTTCTTCACAGATAGGATTTGACTTTCTACAACACTTATGCGGCTTCCTACCCGTTTGAAGGCCGATACAGGTGCTGCGCAAAATGCGGGCGAACATAGAGTATCAAAACAACGCCTTCTAATCTAGGAATATAGGGAAGATACGTATTTGCTACCATGCTTTCTTGGGTCATTAACGACCAACCTCTTTTCTTTTAAAGTAGGATTGCACAATGAATGAATACACGTGGTCCGATAACTGACCAAGTAACATGGTTATCACTaGATGTCCGCCAGACGTGTGCAAACCAACCCGGGAGTTACGTCACTAATCCTTCGCTACGTCGTGAAGATATTTACTTGTGAATATCGAGGGTAATAAGATAATAGACTGTGACTAGTATTGCCAGACTGTCGCTACCTGCAACACATAACTATCCTGAGGTTACTGCATAGTACTGATTACACCCGAGTCAAAATTTCTAACTTCTAACATGTACCTAGTAACCAGCTCAATAATTATGTCAGAATATAGCTCTGGGAACCCTCGGACAATTATGATACACGGTATTAATATCTTGCTTGCGTTAGCCACTTCTCATCTTTGGATACCGATTCTATTTTGCATAGCAGTTCCTTTTACACATATAAGAATTTCGCCATAGGTATGCTGCAG' # noqa: E501 5 | 6 | 7 | # Colors: 8 | VERMILLION = tuple(np.array([213, 94, 0], dtype=np.float) / 255) 9 | REDPURPLE = tuple(np.array([204, 121, 167], dtype=np.float) / 255) 10 | SKYBLUE = tuple(np.array([86, 180, 233], dtype=np.float) / 255) 11 | WHITE = tuple(np.array([255, 255, 255], dtype=np.float) / 255) 12 | BLU = tuple(np.array([0, 114, 178], dtype=np.float) / 255) 13 | ORANG = tuple(np.array([230, 159, 0], dtype=np.float) / 255) 14 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/xx_ConstArchive/constants_23S5S.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | SCAF_SEQ = 'GGATCAAGCTGAAAATTGAAACACTGAACAACGAAAGTTGTTCGTGAGTCTCTCAAATTTTCGCAACTCTGAAGTGAAACATCTTCGGGTTGTGAGGTTAAGCGACTAAGCGTACACGGTGGATGCCCTGGCAGTCAGAGGCGATGAAGGACGTGCTAATCTGCGATAAGCGTCGGTAAGGTGATATGAACCGTTATAACCGGCGATTTCCGAATGGGGAAACCCAGTGTGTTTCGACACACTATCATTAACTGAATCCATAGGTTAATGAGGCGAACCGGGGGAACTGAAACATCTAAGTACCCCGAGGAAAAGAAATCAACCGAGATTCCCCCAGTAGCGGCGAGCGAACGGGGAGCAGCCCAGAGCCTGAATCAGTGTGTGTGTTAGTGGAAGCGTCTGGAAAGGCGCGCGATACAGGGTGACAGCCCCGTACACAAAAATGCACATGCTGTGAGCTCGATGAGTAGGGCGGGACACGTGGTATCCTGTCTGAATATGGGGGGACCATCCTCCAAGGCTAAATACTCCTGACTGACCGATAGTGAACCAGTACCGTGAGGGAAAGGCGAAAAGAACCCCGGCGAGGGGAGTGAAAAAGAACCTGAAACCGTGTACGTACAAGCAGTGGGAGCACGCTTAGGCGTGTGACTGCGTACCTTTTGTATAATGGGTCAGCGACTTATATTCTGTAGCAAGGTTAACCGAATAGGGGAGCCGAAGGGAAACCGAGTCTTAACTGGGCGTTAAGTTGCAGGGTATAGACCCGAAACCCGGTGATCTAGCCATGGGCAGGTTGAAGGTTGGGTAACACTAACTGGAGGACCGAACCGACTAATGTTGAAAAATTAGCGGATGACTTGTGGCTGGGGGTGAAAGGCCAATCAAACCGGGAGATAGCTGGTTCTCCCCGAAAGCTATTTAGGTAGCGCCTCGTGAATTCATCTCCGGGGGTAGAGCACTGTTTCGGCAAGGGGGTCATCCCGACTTACCAACCCGATGCAAACTGCGAATACCGGAGAATGTTATCACGGGAGACACACGGCGGGTGCTAACGTCCGTCGTGAAGAGGGAAACAACCCAGACCGCCAGCTAAGGTCCCAAAGTCATGGTTAAGTGGGAAACGATGTGGGAAGGCCCAGACAGCCAGGATGTTGGCTTAGAAGCAGCCATCATTTAAAGAAAGCGTAATAGCTCACTGGTCGAGTCGGCCTGCGCGGAAGATGTAACGGGGCTAAACCATGCACCGAAGCTGCGGCAGCGACGCTTATGCGTTGTTGGGTAGGGGAGCGTTCTGTAAGCCTGCGAAGGTGTGCTGTGAGGCATGCTGGAGGTATCAGAAGTGCGAATGCTGACATAAGTAACGATAAAGCGGGTGAAAAGCCCGCTCGCCGGAAGACCAAGGGTTCCTGTCCAACGTTAATCGGGGCAGGGTGAGTCGACCCCTAAGGCGAGGCCGAAAGGCGTAGTCGATGGGAAACAGGTTAATATTCCTGTACTTGGTGTTACTGCGAAGGGGGGACGGAGAAGGCTATGTTGGCCGGGCGACGGTTGTCCCGGTTTAAGCGTGTAGGCTGGTTTTCCAGGCAAATCCGGAAAATCAAGGCTGAGGCGTGATGACGAGGCACTACGGTGCTGAAGCAACAAATGCCCTGCTTCCAGGAAAAGCCTCTAAGCATCAGGTAACATCAAATCGTACCCCAAACCGACACAGGTGGTCAGGTAGAGAATACCAAGGCGCTTGAGAGAACTCGGGTGAAGGAACTAGGCAAAATGGTGCCGTAACTTCGGGAGAAGGCACGCTGATATGTAGGTGAAGCGACTTGCTCGTGGAGCTGAAATCAGTCGAAGATACCAGCTGGCTGCAACTGTTTATTAAAAACACAGCACTGTGCAAACACGAAAGTGGACGTATACGGTGTGACGCCTGCCCGGTGCCGGAAGGTTAATTGATGGGGTTAGCGCAAGCGAAGCTCTTGATCGAAGCCCCGGTAAACGGCGGCCGTAACTATAACGGTCCTAAGGTAGCGAAATTCCTTGTCGGGTAAGTTCCGACCTGCACGAATGGCGTAATGATGGCCAGGCTGTCTCCACCCGAGACTCAGTGAAATTGAACTCGCTGTGAAGATGCAGTGCTGGAGAACTGAGGGGGGCTGCTCCTAGTACGAGAGGACCGGAGTGGACGCATCACTGGTGTTCGGGTTGTCATGCCAATGGCACTGCCCGGTAGCTAAATGCGGAAGAGATAAGTGCTGAAAGCATCTAAGCACGAAACTTGCCCCGAGATGAGTTCTCCCTGACCCTTTAAGGGTCCTGAAGGAACGTTGAAGACGACGACGTTGATAGGCCGGGTGTGTAAGCGCAGCGATGCGTTGAGCTAACCGGTACTAATGAACCGTGAGGCTTAACCTTACAACGCCGAAGCTGTTTTGGCGGATGAGAGAAGATTTTCAGCCTGATACAGATTAAATCAGAACGCAGAAGCGGTCTGATAAAACAGAATTTGCCTGGCGGCCGTAGCGCGGTGGTCCCACCTGACCCCATGCCGAACTCAGAAGTGAAACGCCGTAGCGCCGATGGTAGTGTGGGGTCTCCCCATGCGAGAGTAGGGAACTGCCAGGCACATCTTTTATCTACATC' 4 | 5 | # Colors: 6 | VERMILLION = tuple(np.array([213, 94, 0], dtype=np.float) / 255) 7 | REDPURPLE = tuple(np.array([204, 121, 167], dtype=np.float) / 255) 8 | SKYBLUE = tuple(np.array([86, 180, 233], dtype=np.float) / 255) 9 | WHITE = tuple(np.array([255, 255, 255], dtype=np.float) / 255) 10 | BLU = tuple(np.array([0, 114, 178], dtype=np.float) / 255) 11 | ORANG = tuple(np.array([230, 159, 0], dtype=np.float) / 255) 12 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/xx_ConstArchive/constants_EGFP.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | 4 | SCAF_SEQ = 'AAGGGCGAGGAGCTGTTCACCGGGGTGGTGCCCATCCTGGTCGAGCTGGACGGCGACGTAAACGGCCACAAGTTCAGCGTGTCCGGCGAGGGCGAGGGCGATGCCACCTACGGCAAGCTGACCCTGAAGTTCATCTGCACCACCGGCAAGCTGCCCGTGCCCTGGCCCACCCTCGTGACCACCCTGACCTACGGCGTGCAGTGCTTCAGCCGCTACCCCGACCACATGAAGCAGCACGACTTCTTCAAGTCCGCCATGCCCGAAGGCTACGTCCAGGAGCGCACCATCTTCTTCAAGGACGACGGCAACTACAAGACCCGCGCCGAGGTGAAGTTCGAGGGCGACACCCTGGTGAACCGCATCGAGCTGAAGGGCATCGACTTCAAGGAGGACGGCAACATCCTGGGGCACAAGCTGGAGTACAACTACAACAGCCACAACGTCTATATCATGGCCGACAAGCAGAAGAACGGCATCAAGGTGAACTTCAAGATCCGCCACAACATCGAGGACGGCAGCGTGCAGCTCGCCGACCACTACCAGCAGAACACCCCCATCGGCGACGGCCCCGTGCTGCTGCCCGACAACCACTACCTGAGCACCCAGTCCGCCCTGAGCAAAGACCCCAACGAGAAGCGCGATCACATGGTCCTGCTGGAGTTCGTGACCGCCGCCGGGATCACTCTCGGCATGGACGAGCTGTACAAGTAACTGCAGGCATGCAAGCTTGGCGTAATCATGGTCATAGCTGTTTCCTGTGTGAAATTGTTATCCGCTCACAATTCCACACAA' 5 | 6 | 7 | # Colors: 8 | VERMILLION = tuple(np.array([213, 94, 0], dtype=np.float) / 255) 9 | REDPURPLE = tuple(np.array([204, 121, 167], dtype=np.float) / 255) 10 | SKYBLUE = tuple(np.array([86, 180, 233], dtype=np.float) / 255) 11 | WHITE = tuple(np.array([255, 255, 255], dtype=np.float) / 255) 12 | BLU = tuple(np.array([0, 114, 178], dtype=np.float) / 255) 13 | ORANG = tuple(np.array([230, 159, 0], dtype=np.float) / 255) 14 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/xx_ConstArchive/constants_old_old.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | 4 | SCAF_SEQ = 'AAGGGCGAGGAGCTGTTCACCGGGGTGGTGCCCATCCTGGTCGAGCTGGACGGCGACGTAAACGGCCACAAGTTCAGCGTGTCCGGCGAGGGCGAGGGCGATGCCACCTACGGCAAGCTGACCCTGAAGTTCATCTGCACCACCGGCAAGCTGCCCGTGCCCTGGCCCACCCTCGTGACCACCCTGACCTACGGCGTGCAGTGCTTCAGCCGCTACCCCGACCACATGAAGCAGCACGACTTCTTCAAGTCCGCCATGCCCGAAGGCTACGTCCAGGAGCGCACCATCTTCTTCAAGGACGACGGCAACTACAAGACCCGCGCCGAGGTGAAGTTCGAGGGCGACACCCTGGTGAACCGCATCGAGCTGAAGGGCATCGACTTCAAGGAGGACGGCAACATCCTGGGGCACAAGCTGGAGTACAACTACAACAGCCACAACGTCTATATCATGGCCGACAAGCAGAAGAACGGCATCAAGGTGAACTTCAAGATCCGCCACAACATCGAGGACGGCAGCGTGCAGCTCGCCGACCACTACCAGCAGAACACCCCCATCGGCGACGGCCCCGTGCTGCTGCCCGACAACCACTACCTGAGCACCCAGTCCGCCCTGAGCAAAGACCCCAACGAGAAGCGCGATCACATGGTCCTGCTGGAGTTCGTGACCGCCGCCGGGATCACTCTCGGCATGGACGAGCTGTACAAGTAACTGCAGGCATGCAAGCTTGGCGTAATCATGGTCATAGCTGTTTCCTGTGTGAAATTGTTATCCGCTCACAATTCCACACAA' 5 | 6 | 7 | # Colors: 8 | VERMILLION = tuple(np.array([213, 94, 0], dtype=np.float) / 255) 9 | REDPURPLE = tuple(np.array([204, 121, 167], dtype=np.float) / 255) 10 | SKYBLUE = tuple(np.array([86, 180, 233], dtype=np.float) / 255) 11 | WHITE = tuple(np.array([255, 255, 255], dtype=np.float) / 255) 12 | BLU = tuple(np.array([0, 114, 178], dtype=np.float) / 255) 13 | ORANG = tuple(np.array([230, 159, 0], dtype=np.float) / 255) 14 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/xx_ConstArchive/constants_old_old_old.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | SCAF_SEQ = 'GGATCAAGCTGAAAATTGAAACACTGAACAACGAAAGTTGTTCGTGAGTCTCTCAAATTTTCGCAACTCTGAAGTGAAACATCTTCGGGTTGTGAGGTTAAGCGACTAAGCGTACACGGTGGATGCCCTGGCAGTCAGAGGCGATGAAGGACGTGCTAATCTGCGATAAGCGTCGGTAAGGTGATATGAACCGTTATAACCGGCGATTTCCGAATGGGGAAACCCAGTGTGTTTCGACACACTATCATTAACTGAATCCATAGGTTAATGAGGCGAACCGGGGGAACTGAAACATCTAAGTACCCCGAGGAAAAGAAATCAACCGAGATTCCCCCAGTAGCGGCGAGCGAACGGGGAGCAGCCCAGAGCCTGAATCAGTGTGTGTGTTAGTGGAAGCGTCTGGAAAGGCGCGCGATACAGGGTGACAGCCCCGTACACAAAAATGCACATGCTGTGAGCTCGATGAGTAGGGCGGGACACGTGGTATCCTGTCTGAATATGGGGGGACCATCCTCCAAGGCTAAATACTCCTGACTGACCGATAGTGAACCAGTACCGTGAGGGAAAGGCGAAAAGAACCCCGGCGAGGGGAGTGAAAAAGAACCTGAAACCGTGTACGTACAAGCAGTGGGAGCACGCTTAGGCGTGTGACTGCGTACCTTTTGTATAATGGGTCAGCGACTTATATTCTGTAGCAAGGTTAACCGAATAGGGGAGCCGAAGGGAAACCGAGTCTTAACTGGGCGTTAAGTTGCAGGGTATAGACCCGAAACCCGGTGATCTAGCCATGGGCAGGTTGAAGGTTGGGTAACACTAACTGGAGGACCGAACCGACTAATGTTGAAAAATTAGCGGATGACTTGTGGCTGGGGGTGAAAGGCCAATCAAACCGGGAGATAGCTGGTTCTCCCCGAAAGCTATTTAGGTAGCGCCTCGTGAATTCATCTCCGGGGGTAGAGCACTGTTTCGGCAAGGGGGTCATCCCGACTTACCAACCCGATGCAAACTGCGAATACCGGAGAATGTTATCACGGGAGACACACGGCGGGTGCTAACGTCCGTCGTGAAGAGGGAAACAACCCAGACCGCCAGCTAAGGTCCCAAAGTCATGGTTAAGTGGGAAACGATGTGGGAAGGCCCAGACAGCCAGGATGTTGGCTTAGAAGCAGCCATCATTTAAAGAAAGCGTAATAGCTCACTGGTCGAGTCGGCCTGCGCGGAAGATGTAACGGGGCTAAACCATGCACCGAAGCTGCGGCAGCGACGCTTATGCGTTGTTGGGTAGGGGAGCGTTCTGTAAGCCTGCGAAGGTGTGCTGTGAGGCATGCTGGAGGTATCAGAAGTGCGAATGCTGACATAAGTAACGATAAAGCGGGTGAAAAGCCCGCTCGCCGGAAGACCAAGGGTTCCTGTCCAACGTTAATCGGGGCAGGGTGAGTCGACCCCTAAGGCGAGGCCGAAAGGCGTAGTCGATGGGAAACAGGTTAATATTCCTGTACTTGGTGTTACTGCGAAGGGGGGACGGAGAAGGCTATGTTGGCCGGGCGACGGTTGTCCCGGTTTAAGCGTGTAGGCTGGTTTTCCAGGCAAATCCGGAAAATCAAGGCTGAGGCGTGATGACGAGGCACTACGGTGCTGAAGCAACAAATGCCCTGCTTCCAGGAAAAGCCTCTAAGCATCAGGTAACATCAAATCGTACCCCAAACCGACACAGGTGGTCAGGTAGAGAATACCAAGGCGCTTGAGAGAACTCGGGTGAAGGAACTAGGCAAAATGGTGCCGTAACTTCGGGAGAAGGCACGCTGATATGTAGGTGAAGCGACTTGCTCGTGGAGCTGAAATCAGTCGAAGATACCAGCTGGCTGCAACTGTTTATTAAAAACACAGCACTGTGCAAACACGAAAGTGGACGTATACGGTGTGACGCCTGCCCGGTGCCGGAAGGTTAATTGATGGGGTTAGCGCAAGCGAAGCTCTTGATCGAAGCCCCGGTAAACGGCGGCCGTAACTATAACGGTCCTAAGGTAGCGAAATTCCTTGTCGGGTAAGTTCCGACCTGCACGAATGGCGTAATGATGGCCAGGCTGTCTCCACCCGAGACTCAGTGAAATTGAACTCGCTGTGAAGATGCAGTGCTGGAGAACTGAGGGGGGCTGCTCCTAGTACGAGAGGACCGGAGTGGACGCATCACTGGTGTTCGGGTTGTCATGCCAATGGCACTGCCCGGTAGCTAAATGCGGAAGAGATAAGTGCTGAAAGCATCTAAGCACGAAACTTGCCCCGAGATGAGTTCTCCCTGACCCTTTAAGGGTCCTGAAGGAACGTTGAAGACGACGACGTTGATAGGCCGGGTGTGTAAGCGCAGCGATGCGTTGAGCTAACCGGTACTAATGAACCGTGAGGCTTAACCTTACAACGCCGAAGCTGTTTTGGCGGATGAGAGAAGATTTTCAGCCTGATACAGATTAAATCAGAACGCAGAAGCGGTCTGATAAAACAGAATTTGCCTGGCGGCCGTAGCGCGGTGGTCCCACCTGACCCCATGCCGAACTCAGAAGTGAAACGCCGTAGCGCCGATGGTAGTGTGGGGTCTCCCCATGCGAGAGTAGGGAACTGCCAGGCACATCTTTTATCTACATC' 4 | 5 | # Colors: 6 | VERMILLION = tuple(np.array([213, 94, 0], dtype=np.float) / 255) 7 | REDPURPLE = tuple(np.array([204, 121, 167], dtype=np.float) / 255) 8 | SKYBLUE = tuple(np.array([86, 180, 233], dtype=np.float) / 255) 9 | WHITE = tuple(np.array([255, 255, 255], dtype=np.float) / 255) 10 | BLU = tuple(np.array([0, 114, 178], dtype=np.float) / 255) 11 | ORANG = tuple(np.array([230, 159, 0], dtype=np.float) / 255) 12 | -------------------------------------------------------------------------------- /pyDAEDALUS/Automated_Design/xx_ConstArchive/constants_rPB66rRNA: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | 4 | SCAF_SEQ = 'GCCCTGGCAGTCAGAGGCGATGAAGGACGTGCTAATCTGCGATAAGCGTCGGTAAGGTGATATGAACCGTTATAACCGGCGATTTCCGAATGGGGAAACCCAGTGTGTTTCGACACACTATCATTAACTGAATCCATAGGTTAATGAGGCGAACCGGGGGAACTGAAACATCTAAGTACCCCGAGGAAAAGAAATCAACCGAGATTCCCCCAGTAGCGGCGAGCGAACGGGGAGCAGCCCAGAGCCTGAATCAGTGTGTGTGTTAGTGGAAGCGTCTGGAAAGGCGCGCGATACAGGGTGACAGCCCCGTACACAAAAATGCACATGCTGTGAGCTCGATGAGTAGGGCGGGACACGTGGTATCCTGTCTGAATATGGGGGGACCATCCTCCAAGGCTAAATACTCCTGACTGACCGATAGTGAACCAGTACCGTGAGGGAAAGGCGAAAAGAACCCCGGCGAGGGGAGTGAAAAAGAACCTGAAACCGTGTACGTACAAGCAGTGGGAGCACGCTTAGGCGTGTGACTGCGTACCTTTTGTATAATGGGTCAGCGACTTATATTCTGTAGCAAGGTTAACCGAATAGGGGAGCCGAAGGGAAACCGAGTCTTAACTGGGCGTTAAGTTGCAGGGTATAGACCCGAAACCCGGTGATCTAGCCATGGGCAGGTTGAAGGTTGGGTAACACTAACTGGAGGACCGAACCGACTAATGTTGAAAAATTAGCGGATGACTTGTGGCTGGGGGTGAAAGGCCAATCAAACCGGGAGATAGCTGGTTCTCCCCGAAAGCTATTTAGGTAGCGCCTCGTGAATTCATCTCCGGGGGTAGAGCACTGTTTCGGCAAGGGGGTCATCCCGACTTACCAACCCGATGCAAACTGCGAATACCGGAGAATGTTATCACGGGAGACACACGGCGGGTGCTAACGTCCGTCGTGAAGAGGGAAACAACCCAGACCGCCAGCTAAGGTCCCAAAGTCATGGTTAAGTGGGAAACGATGTGGGAAGGCCCAGACAGCCAGGATGTTGGCTTAGAAGCAGCCATCATTTAAAGAAAGCGTAATAGCTCACTGGTCGAGTCGGCCTGCGCGGAAGATGTAACGGGGCTAAACCATGCACCGAAGCTGCGGCAGCGACGCTTATGCGTTGTTGGGTAGGGGAGCGTTCTGTAAGCCTGCGAAGGTGTGCTGTGAGGCATGCTGGAGGTATCAGAAGTGCGAATGCTGACATAAGTAACGATAAAGCGGGTGAAAAGCCCGCTCGCCGGAAGACCAAGGGTTCCTGTCCAACGTTAATCGGGGCAGGGTGAGTCGACCCCTAAGGCGAGGCCGAAAGGCGTAGTCGATGGGAAACAGGTTAATATTCCTGTACTTGGTGTTACTGCGAAGGGGGGACGGAGAAGGCTATGTTGGCCGGGCGACGGTTGTCCCGGTTTAAGCGTGTAGGCTGGTTTTCCAGGCAAATCCGGAAAATCAAGGCTGAGGCGTGATGACGAGGCACTACGGTGCTGAAGCAACAAATGCCCTGCTTCCAGGAAAAGCCTCTAAGCATCAGGTAACATCAAATCGTACCCCAAACCGACACAGGTGGTCAGGTAGAGAATACCAAGGCGCTTGAGAGAACTCGGGTGAAGGAACTAGGCAAAATGGTGCCGTAACTTCGGGAGAAGGCACGCTGATATGTAGGTGAAGCGACTTGCTCGTGGAGCTGAAATCAGTCGAAGATACCAGCTGGCTGCAACTGTTTATTAAAAACACAGCACTGTGCAAACACGAAAGTGGACGTATACGGTGTGACGCCTGCCCGGTGCCGGAAGGTTAATTGATGGGGTTAGCGCAAGCGAAGCTCTTGATCGAAGCCCCGGTAAACGGCGGCCGTAACTATAACGGTCCTAAGGTAGCGAAATTCCTTGTCGGGTAAGTTCCGACCTGCACGAATGGCGTAATGATGGCCAGGCTGTCTCCACCCGAGACTCA' # noqa: E501 5 | 6 | 7 | # Colors: 8 | VERMILLION = tuple(np.array([213, 94, 0], dtype=np.float) / 255) 9 | REDPURPLE = tuple(np.array([204, 121, 167], dtype=np.float) / 255) 10 | SKYBLUE = tuple(np.array([86, 180, 233], dtype=np.float) / 255) 11 | WHITE = tuple(np.array([255, 255, 255], dtype=np.float) / 255) 12 | BLU = tuple(np.array([0, 114, 178], dtype=np.float) / 255) 13 | ORANG = tuple(np.array([230, 159, 0], dtype=np.float) / 255) 14 | -------------------------------------------------------------------------------- /pyDAEDALUS/DAEDserve.py: -------------------------------------------------------------------------------- 1 | from SimpleXMLRPCServer import SimpleXMLRPCServer 2 | import xmlrpclib 3 | import shutil 4 | import sys 5 | from math import floor 6 | from os import listdir, path, makedirs 7 | from Automated_Design.ply_to_input import ply_to_input 8 | from Automated_Design.DX_cage_design import DX_cage_design 9 | from Automated_Design.gen_PDB import pdbgen 10 | 11 | # class daedalusRPC(object): 12 | 13 | def calc(pName, helicalForm, helicalTurns, plyfile, seqfile): 14 | if not path.exists(pName): 15 | makedirs(pName) 16 | hMult=int(helicalTurns) 17 | hF=str(helicalForm) 18 | pFile=str(plyfile) 19 | sFile=str(seqfile) 20 | if hF=='Aform': 21 | # staple crossover asymmetry, 11 nt/helical turn 22 | minEdgeLen=hMult*11 23 | hForm=True 24 | twist=1 25 | elif hF=='Bform': 26 | # no asymmetry in staple or scaffold crossovers, 10.5 nt/helical turn 27 | minEdgeLen=floor(hMult*10.5) 28 | hForm=False 29 | twist=1 30 | elif hF=='Hybrid': 31 | # no asymmetry in staple or scaffold crossovers, 10.5 nt/helical turn 32 | minEdgeLen=hMult*11 33 | hForm=True 34 | twist=2 35 | elif hF=="Twisted": 36 | # scaffold crossover asymmetry in opposite direction, 11 nt/helical turn 37 | minEdgeLen=hMult*11 38 | hForm=True 39 | twist=3 40 | coordinates, edges, faces, edge_length_vec, file_name, \ 41 | staple_name, singleXOs = ply_to_input( 42 | str(pFile), str(pName), minEdgeLen, hForm) 43 | if (sFile=='M13.txt'): 44 | scaf_seq = [] 45 | scaf_name = [] 46 | else: 47 | scaf_name = str(pName) 48 | fSeq=open(sFile,'r') 49 | scaf_seq='' 50 | for lines in fSeq: 51 | scaf_seq=scaf_seq+lines.strip() 52 | scaf_seq = scaf_seq.upper() # Force scaffold sequence to be uppercase 53 | full_file_name = DX_cage_design( # noqa: F841 54 | coordinates, edges, faces, edge_length_vec, file_name, 55 | staple_name, singleXOs, scaf_seq, scaf_name, hForm, str(pName), 56 | twist, print_to_console=False) 57 | pdbout = pdbgen(full_file_name, hForm, str(pName)) 58 | return "Finished!" 59 | # 60 | server = SimpleXMLRPCServer(("localhost", 4242)) 61 | server.register_multicall_functions() 62 | server.register_function(calc, "calc") 63 | server.serve_forever() 64 | -------------------------------------------------------------------------------- /pyDAEDALUS/EGFP_seq.txt: -------------------------------------------------------------------------------- 1 | AAGGGCGAGGAGCTGTTCACCGGGGTGGTGCCCATCCTGGTCGAGCTGGACGGCGACGTAAACGGCCACAAGTTCAGCGTGTCCGGCGAGGGCGAGGGCGATGCCACCTACGGCAAGCTGACCCTGAAGTTCATCTGCACCACCGGCAAGCTGCCCGTGCCCTGGCCCACCCTCGTGACCACCCTGACCTACGGCGTGCAGTGCTTCAGCCGCTACCCCGACCACATGAAGCAGCACGACTTCTTCAAGTCCGCCATGCCCGAAGGCTACGTCCAGGAGCGCACCATCTTCTTCAAGGACGACGGCAACTACAAGACCCGCGCCGAGGTGAAGTTCGAGGGCGACACCCTGGTGAACCGCATCGAGCTGAAGGGCATCGACTTCAAGGAGGACGGCAACATCCTGGGGCACAAGCTGGAGTACAACTACAACAGCCACAACGTCTATATCATGGCCGACAAGCAGAAGAACGGCATCAAGGTGAACTTCAAGATCCGCCACAACATCGAGGACGGCAGCGTGCAGCTCGCCGACCACTACCAGCAGAACACCCCCATCGGCGACGGCCCCGTGCTGCTGCCCGACAACCACTACCTGAGCACCCAGTCCGCCCTGAGCAAAGACCCCAACGAGAAGCGCGATCACATGGTCCTGCTGGAGTTCGTGACCGCCGCCGGGATCACTCTCGGCATGGACGAGCTGTACAAGTAACTGCAGGCATGCAAGCTTGGCGTAATCATGGTCATAGCTGTTTCCTGTGTGAAATTGTTATCCGCTCACAATTCCACACAA 2 | -------------------------------------------------------------------------------- /pyDAEDALUS/InstructionsForUse.txt: -------------------------------------------------------------------------------- 1 | *** To start the backend python process *** 2 | 3 | If needed, install anaconda2 4 | (https://www.anaconda.com/distribution/#download-section) 5 | 6 | Use the anaconda2 python2 program to start a backend instance: 7 | python2 DAEDserve.py 8 | 9 | Optionally compile to a binary (note: use the pip that is part of the anaconda2 package): 10 | pip install pyinstaller 11 | Mac: pyinstaller -Fc --hiddenimport _sysconfigdata DAEDserve.py 12 | Win: pyinstaller -Fc DAEDserve.py 13 | 14 | The executable is built in the dist folder, where it could just be double-clicked to execute 15 | 16 | The server can be tested using "python2 testServer.py" in a separate command window. 17 | 18 | *** To use the GUI *** 19 | 20 | Navigate to either the pyDAEDALUSX windows or Darwin (mac) folder and double click the pyDAEDALUSX application. -------------------------------------------------------------------------------- /pyDAEDALUS/images/DX_Aform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcbb/pyDAEDALUS/139f47bb27144a5121d8218a8fa4a61e9ae05832/pyDAEDALUS/images/DX_Aform.png -------------------------------------------------------------------------------- /pyDAEDALUS/images/DX_Aform_old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcbb/pyDAEDALUS/139f47bb27144a5121d8218a8fa4a61e9ae05832/pyDAEDALUS/images/DX_Aform_old.png -------------------------------------------------------------------------------- /pyDAEDALUS/images/DX_Altform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcbb/pyDAEDALUS/139f47bb27144a5121d8218a8fa4a61e9ae05832/pyDAEDALUS/images/DX_Altform.png -------------------------------------------------------------------------------- /pyDAEDALUS/images/DX_Bform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcbb/pyDAEDALUS/139f47bb27144a5121d8218a8fa4a61e9ae05832/pyDAEDALUS/images/DX_Bform.png -------------------------------------------------------------------------------- /pyDAEDALUS/images/DX_Hform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcbb/pyDAEDALUS/139f47bb27144a5121d8218a8fa4a61e9ae05832/pyDAEDALUS/images/DX_Hform.png -------------------------------------------------------------------------------- /pyDAEDALUS/images/DXedges.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcbb/pyDAEDALUS/139f47bb27144a5121d8218a8fa4a61e9ae05832/pyDAEDALUS/images/DXedges.key -------------------------------------------------------------------------------- /pyDAEDALUS/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcbb/pyDAEDALUS/139f47bb27144a5121d8218a8fa4a61e9ae05832/pyDAEDALUS/images/icon.png -------------------------------------------------------------------------------- /pyDAEDALUS/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |