Download model/comp_surface/prepare_target/save_ply.py from OneScience-Group/SurfDock: direct link, hf CLI and curl.
- Browser
- Download file 1.86 kB
-
https://huggingface.co/OneScience-Group/SurfDock/resolve/main/model/comp_surface/prepare_target/save_ply.py
- Command line
-
hf download hf://OneScience-Group/SurfDock/model/comp_surface/prepare_target/save_ply.py
-
curl -L -o save_ply.py https://huggingface.co/OneScience-Group/SurfDock/resolve/main/model/comp_surface/prepare_target/save_ply.py
1.86 kB
| import pymesh | |
| import numpy | |
| """ | |
| Modified from: | |
| save_ply.py - MaSIF | |
| Pablo Gainza - LPDI STI EPFL 2019 | |
| """ | |
| """ | |
| read_ply.py: Save a ply file to disk using pymesh and load the attributes used by MaSIF. | |
| Pablo Gainza - LPDI STI EPFL 2019 | |
| Released under an Apache License 2.0 | |
| """ | |
| def save_ply( | |
| filename, | |
| vertices, | |
| faces=[], | |
| normals=None, | |
| charges=None, | |
| vertex_cb=None, | |
| hbond=None, | |
| hphob=None, | |
| iface=None, | |
| si=None, | |
| normalize_charges=False, | |
| ): | |
| """ Save vertices, mesh in ply format. | |
| vertices: coordinates of vertices | |
| faces: mesh | |
| """ | |
| mesh = pymesh.form_mesh(vertices, faces) | |
| if normals is not None: | |
| n1 = normals[:, 0] | |
| n2 = normals[:, 1] | |
| n3 = normals[:, 2] | |
| mesh.add_attribute("vertex_nx") | |
| mesh.set_attribute("vertex_nx", n1) | |
| mesh.add_attribute("vertex_ny") | |
| mesh.set_attribute("vertex_ny", n2) | |
| mesh.add_attribute("vertex_nz") | |
| mesh.set_attribute("vertex_nz", n3) | |
| if charges is not None: | |
| mesh.add_attribute("charge") | |
| if normalize_charges: | |
| charges = charges / 10 | |
| mesh.set_attribute("charge", charges) | |
| if hbond is not None: | |
| mesh.add_attribute("hbond") | |
| mesh.set_attribute("hbond", hbond) | |
| if vertex_cb is not None: | |
| mesh.add_attribute("vertex_cb") | |
| mesh.set_attribute("vertex_cb", vertex_cb) | |
| if hphob is not None: | |
| mesh.add_attribute("vertex_hphob") | |
| mesh.set_attribute("vertex_hphob", hphob) | |
| if iface is not None: | |
| mesh.add_attribute("vertex_iface") | |
| mesh.set_attribute("vertex_iface", iface) | |
| if si is not None: | |
| mesh.add_attribute("vertex_si") | |
| mesh.set_attribute("vertex_si", si) | |
| pymesh.save_mesh( | |
| filename, mesh, *mesh.get_attribute_names(), use_float=True, ascii=True | |
| ) | |