This is a model of a polypeptide (protein) chain segment with movable dihedral angles and magnetic hydrogen bonds.
UPDATE 11/25/19: Developed a data set so now the C-beta angles are derived from data instead of estimated, and added a few more photos.
The core unit is a print-in-place tripeptide (the 'no-term' part) accompanied by a glue-on C-alpha - R unit (the 'Calpha-top' part), repeated to join as many tripeptide segments as desired. Also provided are C- and N-termini, all individual parts in case print-in-place does not work for you, and the OpenSCAD file to generate them.
For assembly of multiple tripeptides, apply Jane Richardson's 'corncrib' mnemonic (Richardson81) and refer to the labelled photo. Observe that the C=O bond is noticeably longer than the N-H bond. With this identification, the correct stereochemistry (L-form amino acid) of the C-alpha atom will yield CO-R-N reading clockwise around the H atom (the alpha Carbon H atom is not rendered in the model). Small, re-usable cable ties work well as supports while the glue is drying for this part.
Hydrogen bonds are simulated using 3mm diameter x 5mm length cylindrical neodymium magnets sourced through eBay. The key requirement is that the orientation be consistent across all NH and CO positions. If desired, standard red/blue color-coding may be determined using a magnetic compass: the North-pointing (red) end of the compass needle will be attracted to the positive (blue) pole of the magnet, while the negative (red) end of the magnet will align so as to extend the compass needle. By convention, the positive Nitrogen (N) is colored blue, while the negative Oxygen (O) is colored red.
The rotatable bonds have internal supports which are intended to break away by gently rotating after the tripeptide segment is printed, such that the model may be 'printed in place'. Cura slicer has an option for suports "only touching build plate" which should be enabled to avoid interfering with the internal supports. If your preferrred slicer software does not have an equivalent option, MeshMixer may be used to generate custom supports, or you may find by inspection that your sliced result has not modified the rotatable bonds anyway.
For the print-in-place section, please check your slicer output to ensure the 'X' supports are correctly formed and visible as shown in the screenshot.
The supplied STL files have been generated with the OpenSCAD parameter $fn=8, so that the majority of external surfaces should print without support on a normal FDM printer. Regenerating the files using $fn=0 may yield a more pleasing result (see photos), but will require support along the curved surfaces. The rotatable bonds and H-bond magnet holders are set to $fn=8 inside their respective subroutines, so are not affected by the global setting. Despite the octagonal structure, the H-bond magnet holders may sag when printed in ABS; supports or trimming may be needed.
This software and model were developed as part of a pull request to Biopython supporting two-way conversion between protein 3D (X, Y, Z) coordinates and internal (bond length, angle and dihedral angle) coordinates. Internal coordinates used to generate this model were extracted from 296 proteins with amide protons (aound 170,000 residues) selected from a September 2019 PISCES 'pc20_res2.2_R1.0' dataset. There are two approximations: (1) the omega dihedral angle (C-alpha(i) - N - C - C-alpha(i+1)) is set to 180.0 degrees, while in PDB structures it varies around that value. This is required to make the internal print-in-place support parallel to the base plate and therefore slice in a single layer. (2) the angle of the C-beta atom representing the R group is estimated to form tetrahedral bond angles, as the relevant dihedral angles are rotatable in the model.
This is original work developed independently, however similar projects are documented at Chakraborty13 and Davenport17.