Hi all
I have obtained a reasonably good model of protein dimer close to a DNA molecule just copying the DNA template into my target. But now I want to refine a protein loop close to DNA molecule but taking into account all "real" interactions between the atoms of my protein and DNA. At the moment I was not able to make modeller to recognize my target dna bases. So, my question is: if the ordering of the DNA base atoms in my pdb record are different to the one in top_heav.lib, Should I change it in my pdb or Should I rewrite the top in order to it matches with that of pdb file. Which method would be easier? . Below I paste a desoxi Gua from top_heav.lib (left) and a Gua residue from my template pdb in order to show the differences (right):
RESI DGUA -1.00000 ATOM P P 1.50000 // ATOM 37 P DG A 3 49.258 12.669 8.835 ATOM OP1 ON3 -0.80000 // ATOM 38 OP1 DG A 3 48.625 13.322 7.669 ATOM OP2 ON3 -0.80000 // ATOM 39 OP2 DG A 3 49.792 11.303 8.659 ATOM O5' ON2 -0.55000 // ATOM 40 O5' DG A 3 50.393 13.597 9.434 ATOM C5' CN8 0.10000 // ATOM 41 C5' DG A 3 50.007 14.836 10.056 ATOM C4' CN6 0.20000 // ATOM 42 C4' DG A 3 50.897 15.123 11.268 ATOM O4' ON6 -0.40000 // ATOM 43 O4' DG A 3 50.655 14.196 12.319 ATOM C1' CN6B 0.20000 // ATOM 44 C3' DG A 3 52.366 15.009 10.907 ATOM N9 NN2 -0.14000 // ATOM 45 O3' DG A 3 53.017 15.983 11.686 ATOM C4 CN5 0.14000 // ATOM 46 C2' DG A 3 52.724 13.583 11.293 ATOM N3 NN3A -0.66000 // ATOM 47 C1' DG A 3 51.785 13.331 12.470 ATOM C2 CN2 0.76000 // ATOM 48 N9 DG A 3 51.356 11.909 12.533 ATOM N1 NN2G -0.10000 // ATOM 49 C4 DG A 3 51.166 11.181 13.676 ATOM N2 NN1 0.00000 // ATOM 50 C8 DG A 3 51.170 11.020 11.508 ATOM C6 CN1 0.55000 // ATOM 51 N7 DG A 3 50.833 9.812 11.874 ATOM O6 ON1 -0.47000 // ATOM 52 C5 DG A 3 50.777 9.903 13.268 ATOM C5 CN5 -0.08000 // ATOM 53 C6 DG A 3 50.374 8.977 14.276 ATOM N7 NN4 -0.69000 // ATOM 54 O6 DG A 3 49.799 7.879 14.135 ATOM C8 CN4 0.69000 // ATOM 55 N1 DG A 3 50.574 9.420 15.560 ATOM C2' CN6C 0.00000 // ATOM 56 C2 DG A 3 51.068 10.663 15.839 ATOM C3' CN6 0.10000 // ATOM 57 N3 DG A 3 51.310 11.614 14.951 ATOM O3' ON2 -0.55000 // ATOM 58 N2 DG A 3 51.319 10.942 17.075
I also changed my alignment in order to the bases can be recognized:
>P1; TCP16 sequence:TCP16:::::::0.00:0.00 tjltllljjjejle / tjltllljjjejle / TPKDRHLKIGGRDRRIRI-----PPSVAPQLFRLTKELGFKTDGETVSWLLQNAEPAIFA ATGHG / TPKDRHLKIGGRDRRIRI-----PPSVAPQLFRLTKELGFKTDGETVSWLLQNAEPAIFA ATGHG * >P1; TCP16 structureX:TCP16:1:A:148:D:::-1.00:-1.00 tjltllljjjejle / tjltllljjjejle / TPKDRHLKIGGRD-----RRIRIPPSVAPQLFRLTKELGFKTDGETVSWLLQNAEPAIFA ATGHG / TPKDRHLKIGGRD-----RRIRIPPSVAPQLFRLTKELGFKTDGETVSWLLQNAEPAIFA ATGHG * Below I also paste the python script that I've used in the modelling. May be someone can find any error o misleading command.
# Loop refinement of an existing model from modeller import * from modeller.automodel import * log.verbose() env = environ() # directories for input atom files env.io.atom_files_directory = ['.', '../atom_files'] #env.io.hetatm = True
# Create a new class based on 'loopmodel' so that we can redefine # select_loop_atoms (necessary) class MyLoop(loopmodel):
def special_restraints(self, aln): rsr = self.restraints at = self.atoms
rsr.add(forms.gaussian(group=physical.xy_distance, feature=features.distance(at['CZ:45:C'], at['O6:6:A']), mean=3.0, stdev=0.5))
rsr.add(forms.gaussian(group=physical.xy_distance, feature=features.distance(at['CZ:105:D'], at['O6:20:B']), mean=3.0, stdev=0.5))
# This routine picks the residues to be refined by loop modeling #def special_restraints(self, aln):
def select_loop_atoms(self): #Two loops for refinement at the same time
return selection(self.residue_range('44:C', '47:C'), self.residue_range('103:D', '106:D'))
m = MyLoop(env, alnfile = 'align2.ali' , inimodel='TCP16.B99990001.pdb', # initial model of the target sequence='TCP16') # code of the target
m.loop.starting_model= 1 # index of the first loop model m.loop.ending_model = 1 # index of the last loop model m.loop.md_level = refine.very_slow # loop refinement method
m.make()
Any help or advice will be very appreciated.
Sergio