Hi all<br><br>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 &quot;real&quot; 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):<br>
<br>RESI DGUA    -1.00000            <br>ATOM P       P       1.50000          //    ATOM     37  P      DG A   3      49.258  12.669   8.835<br>ATOM OP1  ON3    -0.80000       //   ATOM     38  OP1  DG A   3      48.625  13.322   7.669<br>
ATOM OP2  ON3    -0.80000       //   ATOM     39  OP2  DG A   3      49.792  11.303   8.659<br>ATOM O5&#39;    ON2    -0.55000      //   ATOM     40  O5&#39;   DG A   3      50.393  13.597   9.434<br>ATOM C5&#39;    CN8     0.10000       //    ATOM     41  C5&#39;  DG A   3      50.007  14.836  10.056<br>
ATOM C4&#39;    CN6     0.20000       //   ATOM     42  C4&#39;  DG A   3      50.897  15.123  11.268<br>ATOM O4&#39;    ON6    -0.40000      //   ATOM     43  O4&#39;  DG A   3      50.655  14.196  12.319<br>ATOM C1&#39;     CN6B    0.20000     //   ATOM     44  C3&#39;  DG A   3      52.366  15.009  10.907<br>
ATOM N9      NN2    -0.14000      //   ATOM     45  O3&#39;  DG A   3      53.017  15.983  11.686<br>ATOM C4      CN5     0.14000       //  ATOM     46  C2&#39;  DG A   3      52.724  13.583  11.293<br>ATOM N3      NN3A   -0.66000     //   ATOM     47  C1&#39;  DG A   3      51.785  13.331  12.470<br>
ATOM C2     CN2     0.76000       //   ATOM     48  N9   DG A   3      51.356  11.909  12.533<br>ATOM N1     NN2G   -0.10000     //   ATOM     49  C4   DG A   3      51.166  11.181  13.676<br>ATOM N2     NN1     0.00000       //   ATOM     50  C8   DG A   3      51.170  11.020  11.508<br>
ATOM C6     CN1     0.55000       //   ATOM     51  N7   DG A   3      50.833   9.812  11.874<br>ATOM O6     ON1    -0.47000      //  ATOM     52  C5   DG A   3      50.777   9.903  13.268<br>ATOM C5   CN5    -0.08000        //   ATOM     53  C6   DG A   3      50.374   8.977  14.276<br>
ATOM N7    NN4    -0.69000       //  ATOM     54  O6   DG A   3      49.799   7.879  14.135<br>ATOM C8    CN4     0.69000       //  ATOM     55  N1   DG A   3      50.574   9.420  15.560<br>ATOM C2&#39;   CN6C    0.00000      //  ATOM     56  C2   DG A   3      51.068  10.663  15.839<br>
ATOM C3&#39;   CN6     0.10000       //  ATOM     57  N3   DG A   3      51.310  11.614  14.951<br>ATOM O3&#39;   ON2    -0.55000       //  ATOM     58  N2   DG A   3      51.319  10.942  17.075<br><br>I also changed my alignment in order to the bases can be recognized:<br>
<br>&gt;P1; TCP16<br>sequence:TCP16:::::::0.00:0.00<br>tjltllljjjejle<br>/<br>tjltllljjjejle<br>/<br>TPKDRHLKIGGRDRRIRI-----PPSVAPQLFRLTKELGFKTDGETVSWLLQNAEPAIFA<br>ATGHG<br>/<br>TPKDRHLKIGGRDRRIRI-----PPSVAPQLFRLTKELGFKTDGETVSWLLQNAEPAIFA<br>
ATGHG<br>*<br>&gt;P1; TCP16<br>structureX:TCP16:1:A:148:D:::-1.00:-1.00<br>tjltllljjjejle<br>/<br>tjltllljjjejle<br>/<br>TPKDRHLKIGGRD-----RRIRIPPSVAPQLFRLTKELGFKTDGETVSWLLQNAEPAIFA<br>ATGHG<br>/<br>TPKDRHLKIGGRD-----RRIRIPPSVAPQLFRLTKELGFKTDGETVSWLLQNAEPAIFA<br>
ATGHG<br>*<br>Below I also paste the python script that I&#39;ve used in the modelling. May be someone can find any error o misleading command.<br><br># Loop refinement of an existing model<br>from modeller import *<br>from modeller.automodel import *<br>
log.verbose()<br>env = environ()<br># directories for input atom files<br>env.io.atom_files_directory = [&#39;.&#39;, &#39;../atom_files&#39;]<br>#env.io.hetatm = True<br><br># Create a new class based on &#39;loopmodel&#39; so that we can redefine<br>
# select_loop_atoms (necessary)<br>class MyLoop(loopmodel):<br>    <br>    def special_restraints(self, aln):<br>        rsr = self.restraints<br>        at = self.atoms<br><br>        rsr.add(forms.gaussian(group=physical.xy_distance,<br>
                               feature=features.distance(at[&#39;CZ:45:C&#39;],<br>                                                         at[&#39;O6:6:A&#39;]),<br>                               mean=3.0, stdev=0.5))<br>
<br>        rsr.add(forms.gaussian(group=physical.xy_distance,<br>                               feature=features.distance(at[&#39;CZ:105:D&#39;],<br>                                                         at[&#39;O6:20:B&#39;]),<br>
                               mean=3.0, stdev=0.5))<br>    <br>    # This routine picks the residues to be refined by loop modeling<br>    #def special_restraints(self, aln):<br>    <br>    def select_loop_atoms(self):<br>
         #Two loops for refinement at the same time<br><br>     return selection(self.residue_range(&#39;44:C&#39;, &#39;47:C&#39;),<br>                         self.residue_range(&#39;103:D&#39;, &#39;106:D&#39;))<br><br>
m = MyLoop(env,<br>           alnfile  = &#39;align2.ali&#39; ,<br>           inimodel=&#39;TCP16.B99990001.pdb&#39;, # initial model of the target<br>           sequence=&#39;TCP16&#39;)               # code of the target<br>
<br><br>m.loop.starting_model= 1           # index of the first loop model<br>m.loop.ending_model  = 1           # index of the last loop model<br>m.loop.md_level = refine.very_slow  # loop refinement method<br><br>m.make()<br>
<br>Any help or advice will be very appreciated.<br><br>Sergio<br clear="all"><br>-- <br>Sergio Garay<br>Dr. en Ciencias Biológicas<br>Facultad de Bioquimica y Cs. Biológicas<br>Universidad Nacional del Litoral<br>Santa Fe - Argentina<br>
C.C. 242 - Ciudad Universitaria - C.P. S3000ZAA<br>Argentina<br>Ph. +54 (342) 4575-213<br>Fax. +54 (342) 4575-221 <br>