NIH 3D Workflows
NIH 3D offers several automated workflows to generate 3D mesh files from certain scientific data formats and other mesh files. For a description of each workflow, their inputs, and their outputs, please see below. Over time we will be adding more input and output formats and model generation tools, so stay tuned!
Documentation for our workflows can be found in Github
In NIH 3D we have a few conventions for how we refer to "3D Models" due to the type of data we can process. In 3D computer graphics, "3D modeling" refers to the generation of a surface representation that can be manipulated using vertices, edges, and polygons in a 3D space. Outside of computer graphics, 3D modeling describes a variety of datasets that can be used to define a 3-dimensional object. For this reason, we distinguish these two data types as follows:
"Mesh File" is used to describe a 3D Object composed of vertices, polygons, and edges. NIH 3D can ingest and output a variety of these formats (eg. stl, wrl, glb, x3d)
"Data File" is used to describe a 3D dataset from which NIH 3D can create a 3D mesh file. These include .cif, pdb, sdf, and may other formats.
Many of the NIH 3D workflows use Chimera X,
a biovisualization program from UC San Francisco.
Our DICOM workflows use VTK, an open source software package from Kitware, and Simple ITK, an open-source image analysis package supported by NIAID.
Our mesh repair workflow and rendering is currently done with Blender, an open source 3D modeling, animation, and rendering package.
Our Quicksubmit workflows will automatically generate several representations (see ChimeraX presets below) directly from a database ID. NIH 3D will also fetch metadata associated with these files and attach it to the entry. We don't permit users to EDIT a Quicksubmit, as these entries are designed to accurately reflect the databases they are retrieved from. If you note a problem with a Quicksubmit, please Contact Us and we can assist you to make changes
Go to https://www.rcsb.org/ to find a molecule of interest. The PDB ID is a 4-character alpha-numeric code that is prominent with each entry (eg. 6VXX).
Note that our system will not accept obsolete PDB IDs. If you wish to create models from an obsolete ID, download the mmCIF file from the entry and upload it as a regular submission.
We now download and store the mmCIF file for all PDB Quicksubmits such that if the entry becomes obsolete we can still re-run workflows and add output formats/styles as they become available.
To get a PubChem ID, go to PubChem and search for your molecule of interest. The ID is the "Compound CID" and will be a numeric string (eg. 9549299).
Please note that we can only generate a model if there is a 3D representation available. If you go to the compound entry in Pubchem (eg. 9549299) and look under "Structure" there must be a 3D Structure available
Go to the EMD and search for your molecule of interest. The ID will be the numeric portion of the EMD-XXXXX code which is prominently displayed with each entry.
Scientific Data Files
NIH 3D can process a number of scientific data formats. In this section we will describe the outputs fromcif, mol, mol2, pdb, pdb1, mae, map, omap, sdf orDICOM input files.
ChimeraX - cif, mol, mol2, pdb, pdb1, mae, map, omap, sdf
When a user submits a "Molecule", ChimeraX will make a determination as to whether it should be classified as a "Small Molecule" or a "Biomacromolecule". Biomacromolecules are defined as having nucleic acid or amino acid residues, while small molecules do not. We ask that you submit viruses (whole capsids) or cells/organelles to those respective categories as we cannot automate classification of these structures. Viruses and cells/organelles undergo the same processing as Biomacromolecules.
ChimeraX will output a .glb file which is vertex colored when appropriate. This glb file is then processed into .stl, x3d, and .wrl files by our mesh-conversion workflows. Note that we only output .stl for monochrome representations as .stl does not support vertex color. We do not output wrl or x3d of monochrome outputs for similar reasons
The NIH 3D Script
When loading a molecular data file or database accession code, NIH 3D will run a few basic operations including:Structural Data:
- For structures of <= 30,000 atoms, it computes bonds based on interatomic distances to sidestep any problems the file format readers may have had processing the file. It then does some sanity checks on the resulting bonds (i.e. are there very short bonds?) and if those checks fail it reverts to the bonds from the input.
- For user-supplied files, it tries to expand the structure based on symmetry information from the input file, if any was provided.
- The total atomic mass of the heavy atoms in the structure is reported in kDa.
- Presets are applied based on whether the structure is considered a "small molecule", a "medium macromolecule" or a "large macromolecule". Small molecules have no polymeric chains. Medium macromolecules are any user-supplied polymeric structures or fetched polymeric structures with less than 250,000 atoms. Large macromolecules are fetched polymeric structures with 250,000+ atoms.
- If the user did not provide a contour level it is automatically determined. For automatic determination, if the volume data was fetched from the EMDB it uses the EMDB suggested contour level if available. Otherwise, it chooses a contour level such that 1% of voxels (1% of the data grid points) lie above it. This contour-level determination is actually part of all the volume data presets, but the script only executes this routine once, and then executes the remaining parts of the various presets it applies.
ChimeraX will generate several representations as appropriate for the input data using the NIHPresets. These presets can be downloaded for your personal use from the ChimeraX Toolshed. Below are examples of each preset with theNIH 3D suffix in bold and the i ChimeraX preset name in italic.
- -Vis are NOT intended for 3D printing
- -Print have been thickened and struts have been added to support 3D printing. These are NOT guaranteed to be 3D printable. These models may have floating pieces and are likely to have intersecting vertices and non-manifold geometry. Many 3D printers have software to repair these issues or you can use one of several free available tools (some are described in this article )
Ribbon Secondary Structure
Molecular ribbon representation with each amino acid colored by secondary structure. α-helix: blue. β-sheet: red. Coil: yellow. Intended for visualization only, not 3D printing.
Ribbon Secondary Structure (Printable)
Molecular ribbon representation with each amino acid colored by secondary structure. α-helix: blue. β-sheet: red. Coil: yellow. Ribbons are thickened and non-physical struts added to make more robust for 3D printing
Molecular ribbon representation with each biopolymer chain colored by rainbow from N-terminus (red) to C-terminus (blue). Intended for visualization only, not 3D printing.
Ribbon Rainbow (Printable)
Molecular ribbon representation with each biopolymer chain colored by rainbow from N-terminus (red) to C-terminus (blue). Ribbons are thickened and non-physical struts added to make more robust for 3D printing.
Ribbon by Chain
Molecular ribbon representation with each biopolymer chain a different color. Intended for visualization only, not 3D printing.
Ribbon by Chain (Printable)
Molecular ribbon representation with each biopolymer chain a different color. Ribbons are thickened and non-physical struts added to make more robust for 3D printing.
Monochrome representation with biopolymer chains shown as ribbons. Intended for visualization only, not 3D printing.
Ribbon Monochrome (Printable)
Monochrome representation with biopolymer chains shown as ribbons. Ribbons are thickened and non-physical struts added to make more robust for 3D printing.
Surface by Chain
Molecular surface representation with each biopolymer chain a different color.
Molecular surface representation colored by local hydrophobicity. Orange: hydrophobic. Blue: hydrophilic.
Molecular surface representation colored by local charge. Blue: positive. Red: negative.
Monochrome molecular surface representation.
Ball and Stick Monochrome
Atoms shown as ball-and-stick in a monochrome representation.
Ball and Stick
Atoms shown as ball-and-stick in a representation with standard colors.
Atoms shown as sticks in a representation with standard colors. Intended for visualization only, not 3D printing.
Atoms shown as sticks in a monochrome representation. Intended for visualization only, not 3D printing.
Atoms shown as sticks in a representation with standard colors. Sticks are thickened to make more robust for 3D printing.
Sticks Monochrome (Printable)
Atoms shown as sticks in a monochrome representation. Sticks are thickened to make more robust for 3D printing.
Atoms shown as space-filled in a representation with standard colors.
Atoms shown as space-filled in a monochrome representation.
Molecular surface from electron microscopy, contoured at recommended level. The color represents radial disance from the center of the model.
Monochrome molecular surface representation (volumetric files).
NIH 3D uses the Visualization Toolkit (VTK) to process a .zip of sequential .dcm (DICOM) files into a 3D mesh file. This script uses threshold values that should generally capture bone from a CT scan then will isolate the largest continous mesh and discard any debris. Your file will be rejected if it doesn't conform to the expected structure of the files which is:
While the workflow may accept imaging other than CT if it conforms to the above file structure, it will either return with an error upon processing or output undesireable results. We plan to add further medical image processing to NIH 3D in the future, but until that time, if you have other formats that you would like to process there are free tools available including3D Slicer and Horos.
Mesh File Submissions
NIH 3D currently accepts and outputs files in .glb, .x3d, .stl, and .wrl format. Whichever input file you provide will be converted into the the other formats, while your original file will remain untouched.
Due to differences in the specifications of different file formats, you may lose certain attributes of your source file when moving between formats. For example, stl files do not support vertex color, and therefore will lost that attribute in the conversion process.
Current LimitationsWhile you may upload a .glb file that contains textures, animations etc., these will not be reflected in the rendered image at this time. We will be fixing this issue shortly. If you go into "3D" mode with the viewer, you will see that your textures, animations, smoothing etc. have not been altered.
NIH 3D uses Blender to attempt repair of meshes for 3D printing. We recommend that you consider your input file carefully before selecting "mesh repair" as not all meshes are suitable (eg. if there are in many disconnected pieces, has very complicated or messy geometry) and will therefore add significant processing time which may still not yield a printable product.
The mesh repair system will determine whether your mesh has manifold edges and vertices, and whether it is free of intersecting vertices. If it does not pass all three tests it will attempt to fix the mesh such that it has no manifold edges. It will also merge any disconnected but overlapping geometry. Any files that have been repaired will have the _mr suffix associated. This suffix is not a guarantee that the model is printable on all 3D printers.
Note that all stl files derived from ChimeraX outputs are also run through mesh repair by default. You will see both a -mr and not mr version (eg. -ribbon-print_NIH3D-mr.stl and -ribbon-print_NIH3D.stl)