#A* ------------------------------------------------------------------- #B* This file contains source code for the PyMOL computer program #C* copyright 1998-2000 by Warren Lyford Delano of DeLano Scientific. #D* ------------------------------------------------------------------- #E* It is unlawful to modify or remove this copyright notice. #F* ------------------------------------------------------------------- #G* Please see the accompanying LICENSE file for further information. #H* ------------------------------------------------------------------- #I* Additional authors of this source file include: #-* #-* #-* #Z* ------------------------------------------------------------------- # bond lengths and other information useful for simply building atoms # # length = { ( 'C3', 'H1') : 1.0900, ( 'C2', 'H1') : 1.0800, ( 'C1', 'H1') : 1.0560, ( 'H1', 'S1') : 1.3360, ( 'H3', 'NA') : 1.5999, ( 'H2', 'O3') : 0.9600, ( 'H3', 'N2') : 1.0100, ( 'H3', 'N3') : 1.0100, ( 'H4', 'N4') : 1.0100, ( 'H4', 'N5') : 1.0100, ( 'CA', 'CD') : 1.6999, ( '00', 'Du') : 0.5000, ( '00', 'Du') : 3.0000, ( 'Br', 'C1') : 1.7900, ( 'Br', 'C2') : 1.8900, ( 'Br', 'C3') : 1.9490, ( 'Br', 'OM') : 1.5000, ( 'Br', 'O2') : 1.5000, ( 'C1', 'C1') : 1.2060, ( 'C1', 'N1') : 1.1640, ( 'C1', 'C2') : 1.4000, ( 'C1', 'C3') : 1.4450, ( 'C1', 'Cl') : 1.6400, ( 'C1', 'F0') : 1.2700, ( 'C1', 'I0') : 1.9900, ( 'C1', 'O3') : 1.3300, ( 'C1', 'OA') : 1.3300, ( 'C1', 'C1') : 1.3000, ( 'C1', 'C2') : 1.3130, ( 'C1', 'O2') : 1.1610, ( 'C1', 'S1') : 1.5600, ( 'C2', 'N2') : 1.3800, ( 'C2', 'N4') : 1.3500, ( 'C2', 'C2') : 1.4630, ( 'C2', 'C3') : 1.5220, ( 'C2', 'Cl') : 1.7300, ( 'C2', 'F0') : 1.3330, ( 'C2', 'I0') : 2.1000, ( 'C2', 'N2') : 1.4200, ( 'C2', 'O3') : 1.3640, ( 'C2', 'OA') : 1.3640, ( 'C2', 'OM') : 1.2200, ( 'C2', 'S1') : 1.7200, ( 'C2', 'SM') : 1.7500, ( 'C2', 'Si') : 1.8650, ( 'C2', 'C2') : 1.3370, ( 'C2', 'N2') : 1.2800, ( 'C2', 'O2') : 1.2200, ( 'C2', 'S1') : 1.6000, ( 'C3', 'C2') : 1.5220, ( 'C3', 'C3') : 1.5260, ( 'C3', 'Cl') : 1.7950, ( 'C3', 'F0') : 1.3800, ( 'C3', 'I0') : 2.1490, ( 'C3', 'N2') : 1.4490, ( 'C3', 'N3') : 1.4710, ( 'C3', 'NB') : 1.4710, ( 'C3', 'N4') : 1.4490, ( 'C3', 'N5') : 1.4710, ( 'C3', 'O3') : 1.4100, ( 'C3', 'OA') : 1.4100, ( 'C3', 'OM') : 1.4100, ( 'C3', 'SA') : 1.8100, ( 'C3', 'S1') : 1.8100, ( 'C3', 'SM') : 1.8340, ( 'C3', 'Si') : 1.8800, ( 'Cl', 'OM') : 1.4200, ( 'Cl', 'O2') : 1.4200, ( 'F0', 'N3') : 1.4200, ( 'F0', 'P0') : 1.5600, ( 'I0', 'OM') : 1.6500, ( 'I0', 'O2') : 1.6500, ( 'Lp', 'N3') : 0.8000, ( 'Lp', 'S1') : 0.6790, ( 'Lp', 'O3') : 0.6000, ( 'N2', 'N2') : 1.2700, ( 'N2', 'N3') : 1.3000, ( 'N2', 'O3') : 1.4000, ( 'N2', 'P0') : 1.7400, ( 'N2', 'Z0') : 2.0500, ( 'N3', 'N3') : 1.3810, ( 'N3', 'O3') : 1.4800, ( 'N4', 'OM') : 1.2000, ( 'N4', 'O2') : 1.2000, ( 'O2', 'O2') : 1.2070, ( 'O2', 'P0') : 1.4800, ( 'O2', 'S1') : 1.4800, ( 'O3', 'P0') : 1.6100, ( 'O3', 'S1') : 1.3460, ( 'O3', 'Si') : 1.6450, ( 'OM', 'P0') : 1.4800, ( 'OM', 'S1') : 1.4500, ( 'S1', 'S1') : 2.0380, ( '00', 'H0') : 1.1000, ( '00', 'OA') : 1.4100, ( '00', 'NB') : 1.4100, ( '00', 'SA') : 1.8100, ( 'Ge', '00') : 2.1000, ( '00', '00') : 1.5000, } for a in list(length.keys()): length[(a[1],a[0])]=length[a] # below are inmcomplete (as is the underlying implementation, hehe ) nonlinear = { 'O3' : 1, 'OH' : 1, 'OW' : 1, 'O0' : 1, 'S1' : 1, 'S0' : 1, '' : 1, '' : 1, '' : 1, '' : 1, } tetrahedral = { 'C3' : 1, 'C0' : 1, 'OQ' : 1, 'N3' : 1, 'N5' : 1, 'N0' : 1, 'P0' : 1, 'B3' : 1, 'Si' : 1, } planer = { 'C2' : 1, 'CP' : 1, 'CM' : 1, # ? 'CR' : 1, # ? 'O2' : 1, 'OM' : 1, 'OP' : 1, 'N2' : 1, 'N4' : 1, 'B2' : 1, '' : 1, '' : 1, '' : 1, 'O2' : 1, }