Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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)