def create_and_add_MBR_residue(pdb, memb_chain, highest_atom_number): rsd = MyPDB.Residue('MBR', 1, memb_chain) X, Y, Z = [25, -25, -25, 25, 25, -25, -25, 25], [25, 25, -25, -25, 25, 25, -25, -25], [15, 15, 15, 15, -15, -15, -15, -15] for i, x, y, z in zip(range(1, 9), X, Y, Z): rsd.add_atom( MyPDB.Atom(serial_num=highest_atom_number + i, name='C%i' % i, res_type_3='MBR', chain=memb_chain, res_seq_num=1, x=x, y=y, z=z, element='O' if z == 15 else 'N', charge='', occupancy=1, temp=1, header='HETATM', alternate='', achar='', si='')) chn = MyPDB.Chain(memb_chain, {1: rsd}) chn.add_residue(rsd) pdb.add_chain(chn)
def create_and_add_MBR_residue(pdb, memb_chain, highest_atom_number): inn = MyPDB.Residue('INN', 1, memb_chain) atom_num = 1 i = 1 for x in range(-30, 30): for y in range(-30, 30): inn.add_atom( MyPDB.Atom(serial_num=highest_atom_number + atom_num, name='%i' % i, res_type_3='INN', chain=memb_chain, res_seq_num=1, x=x, y=y, z=-15, element='N', charge='', occupancy=1, temp=1, header='HETATM', alternate='', achar='', si='')) atom_num += 1 i += 1 out = MyPDB.Residue('OUT', 2, memb_chain) i = 1 for x in range(-30, 30): for y in range(-30, 30): out.add_atom( MyPDB.Atom(serial_num=highest_atom_number + atom_num, name='%i' % i, res_type_3='MID', chain=memb_chain, res_seq_num=2, x=x, y=y, z=15, element='O', charge='', occupancy=1, temp=1, header='HETATM', alternate='', achar='', si='')) atom_num += 1 i += 1 mid = MyPDB.Residue('MID', 3, memb_chain) i = 1 for x in range(-30, 30): for y in range(-30, 30): mid.add_atom( MyPDB.Atom(serial_num=highest_atom_number + atom_num, name='%i' % i, res_type_3='MID', chain=memb_chain, res_seq_num=3, x=x, y=y, z=0, element='C', charge='', occupancy=1, temp=1, header='HETATM', alternate='', achar='', si='')) atom_num += 1 i += 1 chn = MyPDB.Chain(memb_chain, {1: inn, 2: out, 3: mid}) chn.add_residue(inn) chn.add_residue(out) chn.add_residue(mid) pdb.add_chain(chn)