<div>Hi Michael,</div><div>I agree with you respect the recoding. But performance difference is of 2x. </div><div>I started inserting the features in 4.5.5  thursday and within today or tomorrow</div><div>I will end. I plan one day of debug. So totally 4-5gg...I will get back these </div>
<div>days as performance improvement :)</div><div><br></div><div>Of course, implementing seriously this features will take more time both for coding</div><div>and testing. But right now I am not planning to do it seriously.</div>
<div><br></div><div>Maybe later when 4.6 will be out and if it will give me problem.</div><div><br><br><div class="gmail_quote">2012/7/16 Berk Hess <span dir="ltr">&lt;<a href="mailto:hess@kth.se" target="_blank">hess@kth.se</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF"><div class="im">
    <div>On 07/16/2012 06:08 PM, francesco oteri
      wrote:<br>
    </div>
    <blockquote type="cite">
      
      <br>
      <br>
      <div class="gmail_quote">2012/7/16 Berk Hess <span dir="ltr">&lt;<a href="mailto:hess@kth.se" target="_blank">hess@kth.se</a>&gt;</span><br>
        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
          <div text="#000000" bgcolor="#FFFFFF">
            <div>Using lambda scaling for non-bonded interactions is
              going to be very slow.<br>
            </div>
          </div>
        </blockquote>
        <div><br>
        </div>
        <div>If it is done with the actual implementation, you are
          right. But if mdrun recognize rest2=yes thzn it rescales the</div>
        <div>parameters at teh beginning. Then a normal MD run goes.</div>
        <div> </div>
        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
          <div text="#000000" bgcolor="#FFFFFF">
            <div> <br>
              But this would scale the protein-protein non-bonded
              interactions with lambda^2.<br>
            </div>
          </div>
        </blockquote>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>Why? computing charge-charge interaction is:</div>
        <div><br>
        </div>
        <div>S*qi*S*qj = (S^2 )*qi*qj</div>
        <div>but S=sqrt(Bi/B) </div>
        <div>so what I obtain is:</div>
        <div>(Bi/B)* qi*qj</div>
        <div><br>
        </div>
        <div>That is exactly what I want: rescaling by (Bi/B)
          protein-protein interactions</div>
      </div>
    </blockquote></div>
      Ah, sorry, that works indeed. <br>
    <br>
    Cheers,<br>
    <br>
    Berk<div><div class="h5"><br>
    <blockquote type="cite">
      <div class="gmail_quote">
        <div> </div>
        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
          <div text="#000000" bgcolor="#FFFFFF">
            <div> Is that what you want?<br>
              <br>
              Cheers,<br>
              <br>
              Berk
              <div>
                <div><br>
                  <br>
                  On 07/16/2012 05:06 PM, francesco oteri wrote:<br>
                </div>
              </div>
            </div>
            <div>
              <div>
                <blockquote type="cite"> In the paper they just say that
                  non bonded rescaling is obtained rescaling
                  <div>LG epsilon by Bi/B and the protein charges by
                    sqrt(Bi/B).</div>
                  <div><br>
                  </div>
                  <div>I did simulation using the lambda approach and I
                    qualitatively reproduced </div>
                  <div>the results.</div>
                  <div><br>
                  </div>
                  <div>Just to give my contribution, I think the most
                    efficient way to implement REST2</div>
                  <div>is using the lambda approach as follows:</div>
                  <div><br>
                  </div>
                  <div>1) in .mdp introducing a new keyword like rest2 =
                    yes/no</div>
                  <div>2) using the init_lambda value to rescale the
                    parameters at the bootstrap of md </div>
                  <div>   (es. in do_md or init_replica_exchange). </div>
                  <div>3) running the code as normal MD and swapping the
                    states </div>
                  <div><br>
                  </div>
                  <div>Since point 1 implies modification of grompp and
                    point 2 requires the knowledge of </div>
                  <div>the data structure,  I am just implementing point
                    3 while point 2 is demanded to external </div>
                  <div>scripts.</div>
                  <div> <br>
                  </div>
                  <div>Francesco</div>
                  <div>
                    <div><br>
                      <div class="gmail_quote">2012/7/16 Berk Hess <span dir="ltr">&lt;<a href="mailto:hess@kth.se" target="_blank">hess@kth.se</a>&gt;</span><br>
                        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                          <div>On 07/16/2012 04:42 PM, Shirts, Michael
                            (mrs5pt) wrote:<br>
                            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> One
                              question, since better REST2 is one item
                              on the todo list for 5.0, and I<br>
                              want to be thinking about the
                              possibilities.<br>
                              <br>
                              For solute-solvent energy rescaling, how
                              does one calculate the changes in<br>
                              solute-solvent energy without doing
                              multiple PME calls to decompose the<br>
                              electrostatic energy?<br>
                              <br>
                              I&#39;m guessing that by since your are load
                              multiple topologies of the system,<br>
                              for each of those topologies, you can
                              explicitly write new nonbonded<br>
                              pairwise parameter terms between the water
                              and protein.  This is a pain to<br>
                              do (need new ij terms for every parameter
                              pair) but straightforward in the<br>
                              end to automate.  Is this how your are
                              planning to do it?<br>
                              <br>
                              Without PME, then it&#39;s straightforward to
                              decompose into solute-solvent<br>
                              energy / solute-solute / solvent-solvent
                              electrostatics, though for adding<br>
                              long term to Gromacs, we&#39;d want to support
                              PME.<br>
                            </blockquote>
                          </div>
                          No, even without PME this is not
                          straightforward.<br>
                          Using a plain cut-off&#39;s for electrostatics is
                          horrible, so I&#39;d say you want to use
                          reaction-field.<br>
                          But with reaction-filed the correction terms
                          are non pair-wise, as with PME.<br>
                          <br>
                          Cheers,<br>
                          <br>
                          Berk<br>
                          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                            <div>
                              <div> <br>
                                Best,<br>
                                ~~~~~~~~~~~~<br>
                                Michael Shirts<br>
                                Assistant Professor<br>
                                Department of Chemical Engineering<br>
                                University of Virginia<br>
                                <a href="mailto:michael.shirts@virginia.edu" target="_blank">michael.shirts@virginia.edu</a><br>
                                (434)-243-1821<br>
                                <br>
                                <br>
                              </div>
                            </div>
                            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                              <div>
                                <div> From: francesco oteri &lt;<a href="mailto:francesco.oteri@gmail.com" target="_blank">francesco.oteri@gmail.com</a>&gt;<br>
                                  Reply-To: Discussion list for GROMACS
                                  development &lt;<a href="mailto:gmx-developers@gromacs.org" target="_blank">gmx-developers@gromacs.org</a>&gt;<br>
                                  Date: Mon, 16 Jul 2012 16:13:16 +0200<br>
                                  To: Discussion list for GROMACS
                                  development &lt;<a href="mailto:gmx-developers@gromacs.org" target="_blank">gmx-developers@gromacs.org</a>&gt;<br>
                                  Subject: Re: [gmx-developers]
                                  calculating poteintial energy into
                                  do_md()<br>
                                  <br>
                                  Hi<br>
                                  <br>
                                  2012/7/16 Mark Abraham &lt;<a href="mailto:Mark.Abraham@anu.edu.au" target="_blank">Mark.Abraham@anu.edu.au</a>&gt;<br>
                                  <br>
                                  <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">   On
                                    16/07/2012 10:59 PM, francesco oteri
                                    wrote:<br>
                                    <br>
                                    Hi,<br>
                                    what I am trying to do is
                                    implementing the REST2 tecnique [1]<br>
                                    The goal is enanching the
                                    conforlational sampling splitting
                                    the system in<br>
                                    two parts: solvent and solute.<br>
                                    The two groups have a different
                                    APPARENT temperature because the
                                    bonded<br>
                                    interaction within the solute atoms
                                    are rescaled by a factor Bi/B (<br>
                                    Bi=1/Ti*Kb,  Ti = apparent
                                    temperature for the i-th replica,
                                    B=Boltzmann<br>
                                    constant) and the  protein-water
                                    interactions are rescaled by
                                    sqrt(Bi/B).<br>
                                    So the system temperature, regulated
                                    by the thermostat, is equal along
                                    the<br>
                                    different replicas but the dynamic
                                    of the different replicas<br>
                                    changes becaus of the different
                                    Boltzmann factor.<br>
                                    To implement the tecnique, the naive
                                    approach (adopted in [2]) is:<br>
                                    1) Generating N-different topology
                                    (N= number of replicas).<br>
                                    2) Removing same check at the
                                    beginning of the Replica Exchange
                                    code, in<br>
                                    order to run N replicas with equal
                                    run parameters (temperature,
                                    pression,<br>
                                    ecc. ecc.)<br>
                                    3) Changing the acceptance ratio
                                    formula.<br>
                                    <br>
                                      This approach has been developped
                                    for gmx4.0.3 but I need to use<br>
                                    gmx4.5.5 because it has a native
                                    implementation of the CHARMM
                                    force-field.<br>
                                    Since the code between the two
                                    versions is different I am trying to
                                    figure<br>
                                    out how to reinvent the wheel.<br>
                                    <br>
                                      As shown in [3] and adopted in [2]
                                    the same result can be obtained
                                    using<br>
                                    the lamda dynamics in gromacs.In
                                    this case, only one topology has to
                                    be<br>
                                    generated. The state A correspond to
                                    the replica at the lowest apparent<br>
                                    temperature, while the state B
                                    represents the highest temperature
                                    replica.<br>
                                    Intermediate replicas are generated
                                    changing the init_lambda value.<br>
                                    <br>
                                      What has been found, this approach
                                    results in slowest run.<br>
                                    <br>
                                    <br>
                                      So, right now I got stuck at the
                                    point 3. In fact  to find:<br>
                                    <br>
                                      delta = B( Va(Xb) + Vb(Xa) -
                                    Va(Xa) - Vb(Xb))<br>
                                    <br>
                                      I need to calculate Va(Xb) and
                                    Vb(Xa)<br>
                                    <br>
                                    <br>
                                    Va(Xb) is determined by the
                                    potential of replica a and the
                                    coordinates of<br>
                                    replica b, so it is most effectively
                                    evaluated on the processor that has<br>
                                    the coordinates of replica b. If the
                                    topology is the same at the replicas
                                    a<br>
                                    and b, then can Va(Xb) be computed
                                    by replica b by rescaling suitably
                                    the<br>
                                    quantities that contributed to
                                    Vb(Xb), based on the knowledge that
                                    replica<br>
                                    a is the exchange partner? Then the
                                    quantities that are exchanged before<br>
                                    the test are Va(Xb) and Vb(Xa).
                                    Should be as fast as regular REMD.<br>
                                    <br>
                                  </blockquote>
                                  <br>
                                  This is my idea, indeed<br>
                                  <br>
                                </div>
                              </div>
                              <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                <div>
                                  <div> <br>
                                  </div>
                                </div>
                              </blockquote>
                            </blockquote>
                          </blockquote>
                        </blockquote>
                      </div>
                    </div>
                  </div>
                </blockquote>
              </div>
            </div>
          </div>
        </blockquote>
      </div>
    </blockquote>
    <br>
  </div></div></div>

<br>--<br>
gmx-developers mailing list<br>
<a href="mailto:gmx-developers@gromacs.org">gmx-developers@gromacs.org</a><br>
<a href="http://lists.gromacs.org/mailman/listinfo/gmx-developers" target="_blank">http://lists.gromacs.org/mailman/listinfo/gmx-developers</a><br>
Please don&#39;t post (un)subscribe requests to the list. Use the<br>
www interface or send it to <a href="mailto:gmx-developers-request@gromacs.org">gmx-developers-request@gromacs.org</a>.<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Cordiali saluti, Dr.Oteri Francesco<br>

</div>