<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">Hello Oliver,<br>
      <br>
      I can see what I can do for mentoring, but would need to make sure
      I understand the guidelines from GSoC better.<br>
      <br>
      I think having a polished version on TNG would be quite helpful
      not just for core GROMACS but also for our interoperability with
      other packages, so this should definitely be worth my time.<br>
      One thing that concerns me is that we usually have quite a long
      lag time for code contributions coming from external people or new
      team members, so porting the whole code to C++ might not be done
      in the given time span, but it should be possible to get patches
      at least to the point of being reviewed here.<br>
      <br>
      Let's see if this gets chosen in the end!<br>
      <br>
      Cheers<br>
      <br>
      Paul<br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">On 22/03/2020 23:14, Oliver Beckstein
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:1E80D50B-D10C-4539-9710-0639FE6C5B1F@asu.edu">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      Hello TNG people,
      <div class=""><br class="">
      </div>
      <div class="">Apologies for the delayed reply.<br class="">
        <div class=""><br class="">
        </div>
        <div class="">My take-away from your comments on the TNG library
          are:</div>
        <div class=""><br class="">
        </div>
        <div class="">1. TNG has all major features defined (although a
          more polished API might be desirable).</div>
        <div class="">2. You consider the current C code in  <a
            href="https://github.com/gromacs/tng" class=""
            moz-do-not-send="true">https://github.com/gromacs/tng</a> as
          the reference implementation </div>
        <div class="">3. More tests would be welcome.</div>
        <div class="">4. At the moment there is no-one who is really
          looking after the code. (At least at a cursory glance,
          documentation is hard to find;  presumably <a
href="https://github.com/gromacs/tng/blob/master/Trajectoryformatspecification.mk"
            class="" moz-do-not-send="true">https://github.com/gromacs/tng/blob/master/Trajectoryformatspecification.mk</a>  is
          important as well as the JCC 2014 paper (and the 2011 one). )</div>
        <div class="">5. You consider porting the existing C code to C++
          would be the next important step so that at least Gromacs
          itself can move towards TNG adoption.</div>
        <div class=""><br class="">
        </div>
        <div class="">We can advertise the project as </div>
        <div class=""><br class="">
        </div>
        <div class="">1. Port existing TNG C code to C++</div>
        <div class="">2. Write the API documentation  (doxygen strings +
          minimal example for how to use the library)</div>
        <div class="">3. Stretch goal: Create a Python wrapper (based
          on <a href="https://github.com/MDAnalysis/pytng" class=""
            moz-do-not-send="true">https://github.com/MDAnalysis/pytng</a> or
          other approaches).</div>
        <div class=""><br class="">
        </div>
        <div class="">Questions:</div>
        <div class=""><br class="">
        </div>
        <div class="">Is this a realistic plan for a student with no
          previous experience with the specifics but knowledge of C/C++
          &amp; python, for May 18 – Aug 10 (~3 months)?</div>
        <div class=""><br class="">
        </div>
        <div class="">@Paul: would you be able to co-mentor a student
          (primarily 1 and 2)?</div>
        <div class=""><br class="">
        </div>
        <div class="">@Magnus: would you be available for consultations
          – basically, replying to emails on whatever mailing list/issue
          tracker the conversation will happen?</div>
        <div class=""><br class="">
        </div>
        <div class="">Would you think that this would be worth
          everyone’s time? Mentors will be involved in choosing students
          so you won’t get someone that you don’t feel is suitable.</div>
        <div class=""><br class="">
        </div>
        <div class="">There’s no guarantee that this project will be
          chosen but we would see by March 31 (application deadline). </div>
        <div class=""><br class="">
        </div>
        <div class=""><br class="">
        </div>
        <div class="">Oliver</div>
        <div class=""><br class="">
        </div>
        <div class=""><br class="">
        </div>
        <div class=""><br class="">
        </div>
        <div class=""><br class="">
        </div>
        <div class=""><br class="">
          <div>
            <blockquote type="cite" class="">
              <div class="">On Mar 19, 2020, at 1:16 AM, Paul bauer &lt;<a
                  href="mailto:paul.bauer.q@gmail.com" class=""
                  moz-do-not-send="true">paul.bauer.q@gmail.com</a>&gt;
                wrote:</div>
              <br class="Apple-interchange-newline">
              <div class="">
                <div class="">Hello,<br class="">
                  <br class="">
                  I concur with Magnus that moving the TNG codebase to
                  C++ would be a major win and make integration in e.g.
                  GROMACS even better.<br class="">
                  I can also see that I help with mentoring from the
                  GROMACS side, to help with providing a smooth
                  integration process.<br class="">
                  <br class="">
                  Cheers<br class="">
                  <br class="">
                  Paul<br class="">
                  <br class="">
                  On 19/03/2020 09:13, Magnus Lundborg wrote:<br
                    class="">
                  <blockquote type="cite" class="">Hi,<br class="">
                    <br class="">
                    As the main developer of the TNG API I'm happy to
                    hear about this initiative as we needed more hands
                    already from the beginning, and no-one has taken the
                    development over since I moved on to other things.<br
                      class="">
                    <br class="">
                    On 2020-03-18 21:17, David van der Spoel wrote:<br
                      class="">
                    <blockquote type="cite" class="">Den 2020-03-18 kl.
                      19:20, skrev Oliver Beckstein:<br class="">
                      <blockquote type="cite" class="">Hello Gromacs
                        Developers,<br class="">
                        <br class="">
                        As part of Google Summer of Code 2020 with
                        MDAnalysis &lt;<a
href="https://www.mdanalysis.org/2020/02/22/gsoc2020/#google-summer-of-code-2020"
                          class="" moz-do-not-send="true">https://www.mdanalysis.org/2020/02/22/gsoc2020/#google-summer-of-code-2020</a>&gt;
                        we proposed a project to work on the TNG format.
                        Originally the plan was to just make sure that
                        MDAnalysis can work with TNG but after a chat
                        with Erik at BPS (and in the spirit of the last
                        MolSSI interoperability workshop) we thought
                        that it would be more useful to take a step back
                        and possibly work towards finalizing the TNG
                        format &lt;<a
href="https://github.com/MDAnalysis/mdanalysis/wiki/Project-Ideas-2020#project-6-implement-tng-support"
                          class="" moz-do-not-send="true">https://github.com/MDAnalysis/mdanalysis/wiki/Project-Ideas-2020#project-6-implement-tng-support</a>&gt; with
                        the goal to make it usable in any MD analysis
                        code (including MDAnalysis). The preliminary
                        objectives would be:<br class="">
                      </blockquote>
                      <br class="">
                      Great initiative!<br class="">
                      <br class="">
                      <blockquote type="cite" class=""><br class="">
                         1. Fully define the API and capabilities of
                        TNG.<br class="">
                      </blockquote>
                      The existing functionality or would you add stuff
                      that has been disccussed for a long time like
                      energies and other data blocks?<br class="">
                    </blockquote>
                    As far as I know the API should be complete as it
                    is, but perhaps not as polished as would be nice.
                    Adding energies and other data blocks are more a
                    matter of adding it in the software packages using
                    the library. The only exception is that data block
                    IDs are kept as a central repository in the library.
                    But this is just to keep track of them and to avoid
                    ID conflicts. As far as I remember, there is in
                    principle nothing that prevents anyone from writing
                    anything in TNG.<br class="">
                    <blockquote type="cite" class=""><br class="">
                      <blockquote type="cite" class=""> 2. Write
                        documentation.<br class="">
                         3. Write a reference library implementation (C
                        or C++).<br class="">
                      </blockquote>
                      How would that be different from the existing
                      implementation?<br class="">
                    </blockquote>
                    Yes, what is the difference between the existing API
                    and library (in C)? There are plans to make it more
                    C++ compliant. That could be a good project. A full
                    rewrite to proper C++ would be even better. One
                    problem since early on was that the API and ABI was
                    promised to be fully backwards compatible. That
                    makes a redesign harder and explains some of the
                    "late add-ons".<br class="">
                    <blockquote type="cite" class=""><br class="">
                      <blockquote type="cite" class=""> 4. Write tests.<br
                          class="">
                      </blockquote>
                    </blockquote>
                    There are some functionality tests in the TNG
                    library, but more extensive unit tests would of
                    course be good.<br class="">
                    <blockquote type="cite" class="">
                      <blockquote type="cite" class=""> 5. Bonus: Write
                        Python bindings (see start in our pytng<br
                          class="">
                            &lt;<a
                          href="https://github.com/MDAnalysis/pytng"
                          class="" moz-do-not-send="true">https://github.com/MDAnalysis/pytng</a>&gt;
                        library) and integrate with<br class="">
                            MDAnalysis<br class="">
                      </blockquote>
                      <br class="">
                      <blockquote type="cite" class=""><br class="">
                        This project outline is not set in stone and we
                        would be more than happy to adapt it according
                        to your expert input.<br class="">
                        <br class="">
                        We have at least one promising candidate student
                        who is interested in working on this project
                        during 10 weeks this summer.<br class="">
                        <br class="">
                        We would need at least one knowledgable
                        co-mentor from the GROMACS developer community
                        who could commit to mentoring. See <a
                          href="https://google.github.io/gsocguides/mentor/"
                          class="" moz-do-not-send="true">https://google.github.io/gsocguides/mentor/</a> what
                        is expected of mentors. In short, you would be
                        involved in selecting students, communicating
                        with the student (primarily using mailing lists
                        and issue trackers) on a near-daily basis, help
                        with keeping the project on track, and
                        evaluating the student for GSoC (midterm and
                        final evaluation at pass/fail level). About
                        5h/week is a realistic minimum.<br class="">
                      </blockquote>
                    </blockquote>
                    I could hopefully clarify some things in the
                    beginning of the project and possible during as
                    well, but I'm afraid I cannot promise any regular
                    co-mentoring.<br class="">
                    <blockquote type="cite" class="">
                      <blockquote type="cite" class=""><br class="">
                        We completely understand that in the current
                        global crisis, you might have more urgent things
                        to do. But if you think that you could be a
                        co-mentor for this project, please let us know
                        soon because students have to write their
                        applications; their deadline is March 31 but
                        they can submit applications now and unless we
                        have a GROMACS co-mentor we will not be offering
                        the TNG project so students.<br class="">
                        <br class="">
                        Thank you!<br class="">
                        <br class="">
                        Oliver (for the MDAnalysis GSoC 2020 Mentors)<br
                          class="">
                        <br class="">
                        <br class="">
                        <br class="">
                        -- <br class="">
                        Oliver Beckstein, DPhil * <a
                          href="mailto:oliver.beckstein@asu.edu"
                          class="" moz-do-not-send="true">oliver.beckstein@asu.edu</a>
                        &lt;<a href="mailto:oliver.beckstein@asu.edu"
                          class="" moz-do-not-send="true">mailto:oliver.beckstein@asu.edu</a>&gt;<br
                          class="">
                        <a href="https://becksteinlab.physics.asu.edu/"
                          class="" moz-do-not-send="true">https://becksteinlab.physics.asu.edu/</a><br
                          class="">
                        <br class="">
                        Associate Professor of Physics<br class="">
                        Arizona State University<br class="">
                        Center for Biological Physics and Department of
                        Physics<br class="">
                        Tempe, AZ 85287-1504<br class="">
                        USA<br class="">
                        <br class="">
                        Office: PSF 348<br class="">
                        Phone: +1 (480) 727-9765<br class="">
                        FAX: +1 (480) 965-4669<br class="">
                        <br class="">
                        Department of
                        Physics: <a class="moz-txt-link-freetext" href="https://physics.asu.edu/content/oliver-beckstein">https://physics.asu.edu/content/oliver-beckstein</a><br
                          class="">
                        Center for Biological
                        Physics: <a class="moz-txt-link-freetext" href="https://cbp.asu.edu/content/oliver-beckstein">https://cbp.asu.edu/content/oliver-beckstein</a><br
                          class="">
                        <br class="">
                        <br class="">
                      </blockquote>
                      <br class="">
                      <br class="">
                    </blockquote>
                    <br class="">
                  </blockquote>
                  <br class="">
                  -- <br class="">
                  Paul Bauer, PhD<br class="">
                  GROMACS Development Manager<br class="">
                  KTH Stockholm, SciLifeLab<br class="">
                  0046737308594<br class="">
                  <br class="">
                  -- <br class="">
                  Gromacs Developers mailing list<br class="">
                  <br class="">
                  * Please search the archive at <a
                    href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List"
                    class="" moz-do-not-send="true">http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a>
                  before posting!<br class="">
                  <br class="">
                  * Can't post? Read <a
                    href="http://www.gromacs.org/Support/Mailing_Lists"
                    class="" moz-do-not-send="true">http://www.gromacs.org/Support/Mailing_Lists</a><br
                    class="">
                  <br class="">
                  * For (un)subscribe requests visit<br class="">
                  <a
href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers"
                    class="" moz-do-not-send="true">https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers</a>
                  or send a mail to <a
                    href="mailto:gmx-developers-request@gromacs.org"
                    class="" moz-do-not-send="true">gmx-developers-request@gromacs.org</a>.<br
                    class="">
                </div>
              </div>
            </blockquote>
          </div>
          <br class="">
          <div class="">
            <div style="color: rgb(0, 0, 0); letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; word-wrap: break-word;
              -webkit-nbsp-mode: space; -webkit-line-break:
              after-white-space;" class="">
              <div style="color: rgb(0, 0, 0); letter-spacing: normal;
                text-align: start; text-indent: 0px; text-transform:
                none; white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; word-wrap: break-word;
                -webkit-nbsp-mode: space; -webkit-line-break:
                after-white-space;" class="">
                <div style="word-wrap: break-word; -webkit-nbsp-mode:
                  space; -webkit-line-break: after-white-space;"
                  class="">
                  <div style="color: rgb(0, 0, 0); font-family:
                    Helvetica; font-size: 12px; font-style: normal;
                    font-variant-caps: normal; font-weight: normal;
                    letter-spacing: normal; text-align: start;
                    text-indent: 0px; text-transform: none; white-space:
                    normal; word-spacing: 0px;
                    -webkit-text-stroke-width: 0px;"><br class="">
                    --<br class="">
                    Oliver Beckstein, DPhil * <a
                      href="mailto:oliver.beckstein@asu.edu" class=""
                      moz-do-not-send="true">oliver.beckstein@asu.edu</a><br
                      class="">
                    <a href="https://becksteinlab.physics.asu.edu/"
                      class="" moz-do-not-send="true">https://becksteinlab.physics.asu.edu/</a><br
                      class="">
                    <br class="">
                    Associate Professor of Physics<br class="">
                    Arizona State University<br class="">
                    Center for Biological Physics and Department of
                    Physics<br class="">
                    Tempe, AZ 85287-1504<br class="">
                    USA<br class="">
                    <br class="">
                    Department of
                    Physics: <a class="moz-txt-link-freetext" href="https://physics.asu.edu/content/oliver-beckstein">https://physics.asu.edu/content/oliver-beckstein</a><br
                      class="">
                    Center for Biological
                    Physics: <a class="moz-txt-link-freetext" href="https://cbp.asu.edu/content/oliver-beckstein">https://cbp.asu.edu/content/oliver-beckstein</a></div>
                </div>
              </div>
            </div>
          </div>
          <br class="">
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
    </blockquote>
    <p><br>
    </p>
    <pre class="moz-signature" cols="72">-- 
Paul Bauer, PhD
GROMACS Development Manager
KTH Stockholm, SciLifeLab
0046737308594</pre>
  </body>
</html>