User:Wayne Decatur/I-Ppo Morph Methods

From Proteopedia

Jump to: navigation, search

Generated straight B-form DNA of homing site used in structure (TTGACTCTCTTAAGAGAGTCAA [extra 'A' at 3' end for getting two T's on both strands since you only enter text for one strand) using Model It (see molvisindex.org under Molecules, Sources of PDB Files, under DNA Tools) as described in Lac repressor morph methods. Editing text of the pdb file, I deleted the 'A' at the three prime end of each strand to generate ends like in the 1a73 structure.

In order to use with straight B-form DNA (generated by Model IT), I needed to get unremediated pdb file for 1a73 or completely alter the order of the residue atoms and chain designations to match. I felt the unremediated file was the easiest route to go.

I loaded 1a73 structure into Swiss-pdb viewer (DEEP VIEW) and let it magic fit the apo enzyme in 1evx. I disabled movement on those two structures and loaded the unbound DNA. When I had turned it so it was close, I enable movement on all and turned about 90 degrees and then disabled movement again all all but the unbound DNA and moved it into plane with the other structures. I save each layer individually. I edited the aligned 1evx file to match atom numbers with the aligned 1a73 and removed the SO4s. I deleted the 2 Magnesiums in the aligned 1a73 file.

Next, I needed to renumber the atoms in the unbound DNA to make it easy to compare to file 1a73 so that I could match up the number of atoms since morphing needs equal numbers. I also needed to change the chain ids from a and b to match c and d in 1a73. (At first, I thought Biopython would do this but after using the tutorial to install Numpy1.1 and Biopython in addition to my already present installation of Python 2.5, I found at the help site for manipulating pdb files with Biopython and also the cookbookthat it doesn't concern itself with atom numbers that I could see and instead just parses all the other information like chain id and residue number to make that easy to work with. In fact, I wrote a program with it to easily renumber residues and save the file and learned it wasn't what I want; however, here is the program I wrote in case anyone else needs a program that alters residue numbers using Biopython:

from Bio.PDB.PDBParser import PDBParser 

parser = PDBParser()

structure = parser.get_structure('test', 'test.pdb')
header = parser.get_header()
trailer = parser.get_trailer()

for model in structure:
    for chain in model:
        i = 2493
        for residue in chain:
            residue.id = (' ', i, ' ')
            i += 1

from Bio.PDB import PDBIO

w = PDBIO()
w.set_structure(structure)
w.save('test-r1.pdb')


So I searched for something else thinking although I could break it up and do it with a simple Python program it would be nice to find something to do it.)

I found PDB Goodies to take care of the chain renumbering. To get started, just a bit down the page I clicked the not overly obvious spot that said 'click here to see available options in PDB Goodies' to start and on the next page uploaded my pdb file. (Note on this page a link to <help> in the bottom right corner that does summarize what PDB Goodies does). And I chose 'Change Identifiers' and changed A and B to C and D easily using the form generated from my uploaded file and getting the results. (Note PDB goodies also renumbers residues numbers, generating a nice form using the file; I had problems when name of my uploaded file was very long (shortening name fixed it). )(When helping people with animations previously I had used 'alter' command right in Pymol (see http://pymol.sourceforge.net/newman/ref/S1000comref.html) and ran 'sort' command after each altering to change chain designations.) For renumbering the atom numbers I found this page of documentation for Maya Chem Tools which does a lot more manipulating of PDB files than just what I found it for but it is for installing with Perl. So I gave up and wrote my own Python script and as I did it, I realized that I also need to discard lines that involved atoms designated 'H5*' that I assume came from Model It. The Python script I generated:


pdb = open("test.pdb", "r") 

i = 2493
for line in pdb:
    if line[:4] == 'ATOM':    #so only does atoms and not comments or other lines
        if line[13:16] != 'H5*': #added this because the unbound DNA I got from Model It seemed to have H5* atoms that 1a73 did not so I didn't want those lines
            print line [:7] + str(i) + line [11:-1]
            i += 1

Next I combined the aligned edited 1evx file with the aligned edited unbound DNA file to match 1a73. At first I thought the Yale Morph Server wouldn't work because I had DNA in the structure but in the FAQ I found a link to the Morph Server for multiple subunits and nucleic acids that sounded perfectly suited; however, it didn't seem to ever send anything back. So I went looking for more explanation and couldn't figure out what was wrong. So I looked at what the FAQ called 'the Beta server'. That server said on its page here that is was the 'Server for morphing complexes' and they wanted to implement it working for nucleic acids "in a few weeks". (I also found that at the time, the link to the 'multi chain server' here went to that server too.) On a lark, I tried it with the proteins (using the same file I submitted to the other server) and they came right back nicely morphed. Then I used it to submit the same files and they came back nicely morphed!!!! IT WORKED!!!

Proteopedia Page Contributors and Editors (what is this?)

Wayne Decatur

Personal tools