3D printing of model pieces



Supporting InformationSkeletides: A Modular, Simplified Physical Model of Protein Secondary StructureParsa Asachi1, Uyen N. T. Nguyen1, Jacqueline Dang1, Ryan K. Spencer2, Hannah S. Martin1 and Ronald N. Zuckermann1*1Molecular Foundry,?Lawrence Berkeley National Laboratory, Berkeley, California 94720, United States, 2Department of Chemical Engineering, University of California Irvine, Irvine, California 92697, United States.Table of Contents TOC \o "1-3" \h \z \u 3D printing of model pieces PAGEREF _Toc27669116 \h 2STL files and dimensions for all three Skeletide pieces PAGEREF _Toc27669117 \h 3Analysis of the alpha carbon bond angle and dihedral angle distributions in the Protein Data Bank PAGEREF _Toc27669118 \h 5“Calculate Dihedral” Python script PAGEREF _Toc27669119 \h 6“PDB Reader” Python script PAGEREF _Toc27669120 \h 8Self-Assembly Chamber PAGEREF _Toc27669121 \h 9Spontaneous assembly with strong magnets PAGEREF _Toc27669122 \h 10Time course of alpha helix assembly PAGEREF _Toc27669123 \h 11Time course of beta sheet assembly PAGEREF _Toc27669124 \h 12Specific and nonspecific binding behavior during the course of self-assembly PAGEREF _Toc27669125 \h 13 HYPERLINK \l "_Toc27669126" Frequency of secondary structures formed PAGEREF _Toc27669126 \h 14 HYPERLINK \l "_Toc27669127" Average chain length during the course of assembly PAGEREF _Toc27669127 \h 15Table S1: Raw data from the self-assembly of alpha-helix pieces. PAGEREF _Toc27669128 \h 16Table S2: Raw data from the self-assembly of beta-sheet pieces. PAGEREF _Toc27669129 \h 17Assembled Skeletide secondary structures PAGEREF _Toc27669130 \h 183D printing of model piecesWe utilized a Stratasys uPrint Plus 3D printer to produce the alpha-helix, beta-sheet, and turn pieces in batches of 20 units (print time ~8-13 hours). All pieces were printed in acrylonitrile butadiene styrene (ABS) plastic along with SR-30 soluble support material. This is a fused deposition modeling printer a layer resolution of 0.010 inch. The CatalystEX 4.2 software was used to control the printer and a solid model interior was used with SMART support fill mode. After 3D printing, all pieces including the embedded support material was submerged into a CleanStation SCA-1200HT Support Removal System (PADT Inc.) filled with support removal agent WaterWorks Soluble Concentrate P400SC (Stratasys Inc.) for an 8-hour period maintained at 70 °C. After all the support material was dissolved, the pieces were rinsed with cold water three times and dried. The magnets can then be pushed directly into their holes without any specialized tools.Magnet specifications:Model typeFunctionMagnet dimensions dia. x len. (in.)Pull strength (lbs)Part numberSupplierSelf-assemblyH-bond1/16 x 1/16 0.12D11-N52K&J Magnetics, Inc.Self-assemblyRSAL1/8 x 1/80.84D22-N52K&J Magnetics, Inc.HandheldH-bond1/8 x 1/80.84D22-N52K&J Magnetics, Inc.HandheldRSAL3/16 x 1/81.70D32-N52K&J Magnetics, Inc.STL files and dimensions for all three Skeletide piecesThere are two sets of STL files for the two versions of Skeletide pieces: regular pieces designed to be assembled by hand, and “water” pieces, designed for use in the self-assembly water tank, which are attached as supporting information files. The regular pieces represent the Skeletide models with a stronger magnet set to withstand gravity and general handling (AlphaHelixSTL.stl, BetaSheetSTL.stl, and TurnPieceSTL.stl). The “Water” pieces represent the models with a weaker magnet set that facilitate the spontaneously assembly in the water chamber (AlphaHelixSTL_Water.stl and BetaSheetSTL_Water.stl). (a) Alpha helix piece dimensions:(b) Beta sheet piece dimensions:(c) Turn piece dimensions:Figure S1. CAD drawings indicating key dimensions of the Skeletide pieces: (a) the alpha-helix piece, (b) the beta sheet piece, and (c) the turn piece. STL files for these pieces are also provided as supporting information.Analysis of the alpha carbon bond angle and dihedral angle distributions in the Protein Data BankAngles for Cα-Cα*-Cα?and dihedral angles for Cα-Cα*-Cα-Cα?were?calculated?for non-glycine residues using the Top8000 high resolution crystal structure dataset (Chen VB, Arendall WB, Headd JJ, Keedy DA, Immormino RM, Kapral GJ, Murray LW, Richardson JS & Richardson DC (2010)? Acta Cryst. D66:12-21). Each PDB file was parsed and all Cα?locations were determined using the Atom Type column within the PDB format. The X, Y, and Z coordinates for each Cαwere stored per crystal structure. The Cα?angle was calculated by calculating the angle between the vectors formed by Cα?and Cα?(i+1), and Cα?(i+1) and Cα?(i+2). Dihedral angles were calculated by first calculating the vectors between Cα?and Cα?(i+1), Cα?(i+1) and Cα?(i+2), and Cα?(i+2) and Cα?(i+3). The angle was then calculated between the normal formed by vectors (Cα, Cα?(i+1)) and (Cα?(i+1), Cα?(i+2)), and the normal formed by vectors (Cα?(i+1), Cα?(i+2)) and (Cα(i+2), Cα?(i+3)). Each angle and dihedral were calculated by walking along the backbone along successive residues. Dihedral calculations that encountered a Gly at Cα?(i+1) were skipped.?No additional processing of the crystal dataset was required. This resulted in over 1.6 million Cα-angle and Cα-dihedral angle combinations.?Combinations were binned linearly (n=400) and plotted with MatLab.“Calculate Dihedral” Python script import sysfrom pdb_reader import PDB_readerimport mathimport numpy as npimport numpy.linalgimport itertools#import randomimport glob#calculates the dihedral angles for a set of four coordinatesdef compute_dihedral(a_coor, b_coor, c_coor, d_coor):b1 = [b_coor[0] - a_coor[0], b_coor[1] - a_coor[1], b_coor[2] - a_coor[2]] #vector between a and bb2 = [c_coor[0] - b_coor[0], c_coor[1] - b_coor[1], c_coor[2] - b_coor[2]] #vector between b and cb3 = [d_coor[0] - c_coor[0], d_coor[1] - c_coor[1], d_coor[2] - c_coor[2]] #vector between c and dn1 = [(b1[1]*b2[2] - b1[2]*b2[1]), (b1[0]*b2[2] - b1[2]*b2[0]), (b1[0]*b2[1] - b1[1]*b2[0])] #normal between a/b and b/cn2 = [b2[1]*b3[2] - b2[2]*b3[1], b2[0]*b3[2] - b2[2]*b3[0], b2[0]*b3[1] - b2[1]*b3[0]] #normal between b/c and c/d#check for direction of anglen1_cross_n2 = [(n1[1]*n2[2] - n1[2]*n2[1]), (n1[0]*n2[2] - n1[2]*n2[0]), (n1[0]*n2[1] - n1[1]*n2[0])]check_par = (b2[0]*n1_cross_n2[0]+b2[1]*n1_cross_n2[1]+b2[2]*n1_cross_n2[2])/((math.sqrt(b2[0]*b2[0]+b2[1]*b2[1]+b2[2]*b2[2])*math.sqrt(n1_cross_n2[0]*n1_cross_n2[0]+n1_cross_n2[1]*n1_cross_n2[1]+n1_cross_n2[2]*n1_cross_n2[2])))angle_temp = (n1[0]*n2[0]+n1[1]*n2[1]+n1[2]*n2[2])/((math.sqrt(n1[0]*n1[0]+n1[1]*n1[1]+n1[2]*n1[2])*math.sqrt(n2[0]*n2[0]+n2[1]*n2[1]+n2[2]*n2[2])))dihedral = (180/math.pi)*math.acos(angle_temp)*check_par*-1return dihedraldef compute_angle2(a_coor, b_coor, c_coor):v1 = [b_coor[0] - a_coor[0], b_coor[1] - a_coor[1], b_coor[2] - a_coor[2]] #vector between a and bv2 = [c_coor[0] - b_coor[0], c_coor[1] - b_coor[1], c_coor[2] - b_coor[2]] #vector between b and cv1_dot_v2 = v1[0]*v2[0] + v1[1]*v2[1]+v1[2]*v2[2]v1_mag = math.sqrt(v1[0]*v1[0] + v1[1]*v1[1]+ v1[2]*v1[2])v2_mag = math.sqrt(v2[0]*v2[0] + v2[1]*v2[1]+ v2[2]*v2[2])angle = 180-(180/math.pi)*math.acos((v1_dot_v2)/(v1_mag*v2_mag))return anglefile_list = glob.glob('Peptoids/*.pdb')print(file_list)data = []k=0dihedral_CA=[]angle_CA=[]residue=[]misc_residue=[]while k < len(file_list):#while k < 200:pdb_input=[]with open(file_list[k], "r") as myfile:for i, line in enumerate(myfile):pdb_input.append(line.strip('\n'))atom_name, residue_name, residue_num, chainID, atom_pos,seg_id,other_resid = PDB_reader.read_pdb(pdb_input)i=0temp_CA=[]temp_residue_num=[]temp_res_name=[]residues=[]for atom in atom_name:if atom == 'CA':temp_CA.append(atom_pos[i])temp_residue_num.append(residue_num[i])temp_res_name.append(residue_name[i])i+=1else:i+=1#print(temp_res_name)#print(temp_residue_num)i=0for resid in other_resid:if resid in misc_residue:passelse:misc_residue.append(resid)while i < len(temp_CA)-3:try:if temp_res_name[i+1] != 'GLY':dihedral_CA.append(compute_dihedral(temp_CA[i], temp_CA[i+1], temp_CA[i+2],temp_CA[i+3]))angle_CA.append(compute_angle2(temp_CA[i], temp_CA[i+1], temp_CA[i+2]))i+=1except:i+=1k+=1data = open('dihedral_complete_CA_peptoid.txt', 'w')i=0while i < len(dihedral_CA):data.write(str("{0:.3f}".format(dihedral_CA[i]))+'\t'+str("{0:.3f}".format(angle_CA[i]))+'\n')i+=1data.close()“PDB Reader” Python script class PDB_reader(object):def __init__(self):returndef read_pdb(pdb_input):i =0atom_name=[]residue_name=[]residue_number=[]chainID=[]atom_pos=[]segid=[]other_resid=[]residues=["ALA","ARG","ASN","ASP","CYS","GLN","GLU","GLY","HIS","ILE","LEU","MET","PRO","PHE","LYS","SER","THR","TYR","TRP","VAL", "AALA","AARG","AASN","AASP","ACYS","AGLN","AGLU","AGLY","AHIS","AILE","ALEU","AMET","APRO","APHE","ALYS","ASER","ATHR","ATYR","ATRP","AVAL","NPM","NREH","NTE","NDC","NPBE",'NPE','NPB','NCE','NAE']#atoms=['N','CA','C']atoms=['C','CA','CA5','CB','CG','CD1','CD','CD2','CE1','CE2','CZ','CE','CH','CT','CI','CK','CG1','CG2','CZ1','C03','CAY','CY','N','NG','ND2', 'NZ', 'NB', 'NG', 'ND','O', 'OD1', 'OD2','OG','OZ','OI','OE1','OE2','OT1','OT2','OH2','BRH']while i < len(pdb_input)-1:temp = pdb_input[i]check_ATOM = "".join(temp[0:6]).strip()if check_ATOM == 'ATOM' or check_ATOM == 'HETATM':residue_name_temp = "".join(temp[16:20]).strip()atom_name_temp = "".join(temp[12:16]).strip()if residue_name_temp not in residues or atom_name_temp not in atoms:if residue_name_temp not in other_resid and atom_name_temp in atoms:other_resid.append(residue_name_temp)i+=1else:i+=1else:atom_name.append("".join(temp[12:16]).strip())residue_name.append("".join(temp[16:20]).strip())residue_number.append("".join(temp[23:26]).strip())chainID.append("".join(temp[21:22]))atom_position_x = "".join(temp[30:38]).strip()atom_position_y = "".join(temp[38:46]).strip()atom_position_z = "".join(temp[46:54]).strip()atom_pos.append((float(atom_position_x), float(atom_position_y), float(atom_position_z)))segid.append("".join(temp[73:75]).strip())i+=1else:i+=1return atom_name, residue_name, residue_number, chainID, atom_pos, segid, other_residSelf-Assembly ChamberSelf-assembly chamber parts list:1.Standard glass rectangular tank (Aqueon Products), size 20H: 24.25" L x 12.5" W x 16.75" H2.LED full hood 24" aquarium lamp with two white bulbs (Aqueon Products)3.Submersible Pond Pump 800 GPH (TotalPond Inc.)4.Aluminum mesh, 1/8" holes (McMaster Carr) 11.5” x 16”5.Plastic curved deflection slope with suction cups attachment, 3” x 3” x 11.5”6.Two 9 watt white LED lights (Ampper Inc.) 7.Window film lining, frost (Gila Film Products)8. LED lamp, 300 lumensConstruction of the self-assembly chamber:The submersible pump was adhered to the bottom of one side of the aquarium tank and isolated from the main assembly chamber by means of a straight-positioned aluminum mesh panel. The pump outlet tube was positioned 30o downward and protruded through a 1.25” hole at the bottom of the mesh panel. On the opposite side of the tank, a curved deflection slope was adhered by suction cups to the side-wall and bottom of the tank in order to redirect the water stream from the pump upward. The tank was equipped with two 24" LED aquarium lamps, and two additional LED lamps embedded on the hood close to the front glass wall to facilitate camera recording. The side and rear glass walls were lined with window lining film to eliminate reflective glare. Figure S2: Schematic diagram of the self-assembly chamber. This figure presents the self-assembly chamber utilized for self-assembly trials in water and the schematic diagram of its important parts.Spontaneous assembly with strong magnetsFigure S3: Strong Magnet Problem. This figure demonstrates the problem that occurs in the self-assembly water chamber when utilizing strong magnets in the alpha-helix pieces designed to hold together during manual assembly. The trial was started with 10 separated alpha-helix pieces and a persistent aggregated structure from within the first few seconds of the self-assembly course. Despite formation of some correct H-bonds, other incorrect bonds were strong and remained unchanged for the rest of the 120-minute course.Time course of alpha helix assemblyFigure S4: Photos capturing self-assembly progression of alpha-helix pieces throughout the course of 120-minute trial. This figure presents time-lapse photos (20-minute intervals) of 50 alpha-helix pieces, data extracted from these photos are presented in Figure 5, S5, S6, S7. Time course of beta sheet assemblyFigure S5: Photos capturing self-assembly progression of beta-sheet pieces throughout the course of 120-minute trial. This figure presents time-lapse photos (20-minute intervals) of 50 beta-sheet pieces, data extracted from these photos are presented in Figure 5, S5, S6, S7. Specific and nonspecific binding behavior during the course of self-assemblyFigure S6: Frequency of hydrogen-bonds and non-specific bonds. This figure shows the average frequency of formation of hydrogen bonds and non-specific bonds (at 5-minute intervals) from three independent 120-minute self-assembly trials. Hydrogen bonds are defined as correct hydrogen bond formed between two pieces. Non-specific bonds are defined as the total number of incorrectly adhered hydrogen poles to either the N- or C-termini, or to an incorrectly rotated connection between the N- and C-termini of two pieces. Frequency of secondary structures formedFigure S7: Frequency of secondary structures formed during assembly. This figure shows average number of alpha helices and beta sheets at each 5-minute interval time point observed from three independent 120-minute self-assembly trials. An alpha helix is defined as chain of at least 4 alpha-helix pieces with the establishment of at least one intrachain hydrogen bond. A beta sheet is defined as the joining of two linear chains by at least two inter-chain hydrogen bonds.Average chain length during the course of assemblyFigure S8: Average length of all chains formed by individual alpha-helix or beta-sheet pieces during the assembly. This figure shows the average length of all correct oligomers formed by individual pieces at each 5-minute interval time point. The presented data is averaged from three independent 120-minute self-assembly trials.Table S1: Raw data from the self-assembly of alpha-helix pieces.Values refer to the number of individual pieces contained within a given assembly as depicted in Figuire 5(c).Time (min)15-16mer13-14mer11-12mer9-10mer7-8mer5-6mer3-4mer1-2mer0000000050500000593610000005192615000001029112000008112011250000817169300000817151035001201501494000120166610450012981272500012986123550012180612260001218061226501312906827016012900112751601297033801501210750185150121075019015012107501951501210750110001412107601105014120220021100141202200211502700220011200270015602Table S2: Raw data from the self-assembly of beta-sheet pieces.Values refer to the number of individual pieces contained within a given assembly as depicted in Figuire 5 (d).Time (min)8mer7mer6mer5mer4mer3mer2mer1mer000000005050060461024108000831417150000161212102000001615109250761049104300061012985350012101636340006151692245806151630250806151630255806152000160006251602165000251264370000251292275806208620800062589208500625890290001815890095001220890110000121512623105076158644110070201206511507015163451208001516362Assembled Skeletide secondary structuresFigure S9: Assembled secondary structures: (a) alpha helix, (b) parallel beta sheet, and (c) anti-parallel beta sheet. ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download