<div dir="ltr">Hi,<br><div><br></div><div>Please note there is extensive doxygen documentation in the code, e.g. <a href="https://github.com/gromacs/tng/blob/master/CMakeLists.txt#L67">https://github.com/gromacs/tng/blob/master/CMakeLists.txt#L67</a>. But I don&#39;t know of anywhere it was posted online.</div><div><br></div><div>MArk</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 23 Mar 2020 at 21:40, Oliver Beckstein &lt;<a href="mailto:obeckste@asu.edu">obeckste@asu.edu</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;">Hello Paul,<div><br></div><div><div><blockquote type="cite"><div>On Mar 23, 2020, at 4:17 AM, Paul bauer &lt;<a href="mailto:paul.bauer.q@gmail.com" target="_blank">paul.bauer.q@gmail.com</a>&gt; wrote:</div><br><div>
  
    
  
  <div>
    <div>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></div></div></div></blockquote><div><br></div><div><a href="https://google.github.io/gsocguides/mentor/" target="_blank">https://google.github.io/gsocguides/mentor/</a></div><div><br></div><div><b>“</b><strong>Mentor</strong>: Mentors are people from the community who 
volunteer to work with a student. Mentors provide guidance such as 
pointers to useful documentation, code reviews, etc. In addition to 
providing students with feedback and pointers, a mentor acts as an 
ambassador to help student contributors integrate into their project’s 
community. Some organizations choose to assign more than one mentor to 
each of their students. Many members of the community provide guidance 
to their project’s GSoC students without mentoring in an “official” 
capacity, much as they would answer anyone’s questions on the project’s 
mailing list or IRC channel.”</div><div><br></div><div><a href="https://google.github.io/gsocguides/mentor/what-makes-a-good-mentor" target="_blank">https://google.github.io/gsocguides/mentor/what-makes-a-good-mentor</a></div><div><br></div><div>There’s also a 3-4 weeks “community bonding” period in which the selected student starts interacting directly with mentors and projects. <a href="https://google.github.io/gsocguides/mentor/mind-the-gap" target="_blank">https://google.github.io/gsocguides/mentor/mind-the-gap</a> For the TNG project we would need the time to define the milestones clearly (see <a href="https://google.github.io/gsocguides/mentor/setting-expectations" target="_blank">https://google.github.io/gsocguides/mentor/setting-expectations</a> and <a href="https://google.github.io/gsocguides/mentor/managing-the-plan" target="_blank">https://google.github.io/gsocguides/mentor/managing-the-plan</a> ) and get the student started with the code base, especially as any of the students who are applying have only worked on MDAnalysis before. </div><br><blockquote type="cite"><div><div><div>
      <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></div></div></div></blockquote><div><br></div><div>That’s good, otherwise I would say “no”.</div><br><blockquote type="cite"><div><div><div>
      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></div></div></div></blockquote><div><br></div><div>I admit to having limited experience in large C/C++ projects so your expertise is crucial. My 2 cents would be that in this case I would start with a good test suite that passes under the current version and attack the project with test-driven development. Would be feasible to start from a separate fork of the current TNG repository as a complete rewrite to speed up development? If the library is not immediately integrated into Gromacs itself then maybe separate development strands for the C and new C++ version might be ok? But I do defer to how you would want to handle it – let me know.</div><div><br></div><div>It is a concern if the student has to wait for code reviews for days because the student is supposed to work on this specific project for the duration of GSoC. Furthermore, we must evaluate the student three times (<a href="https://google.github.io/gsocguides/mentor/evaluations" target="_blank">https://google.github.io/gsocguides/mentor/evaluations</a>). If we fail the student, they are kicked out (and don’t get paid). If they cannot submit work then we cannot evaluate them fairly.</div><br><blockquote type="cite"><div><div><div>Let&#39;s see if this gets chosen in the end!<br></div></div></div></blockquote><div><br></div><div>Please have a quick look through my comments above. If you think that this remains a feasible project for a student then I’ll put you down as a co-mentor (do you have a GitHub username and/or let me know another way to reference you, e.g., on the new GitLab installation; please also let me know the official TNG repo – is it really <a href="https://github.com/gromacs/tng" target="_blank">https://github.com/gromacs/tng</a> ?)</div><div><br></div><div>It’s also ok to say “no thank you” , it might simply not be a perfect fit, and then I’d rather have students focus on other projects. We can then see if there are other ways to move TNG forward.</div><div><br></div><div>Best,</div><div>Oliver </div><div><br></div><br><blockquote type="cite"><div><div><div>
      <br>
      Cheers<br>
      <br>
      Paul<br>
    </div>
    <div><br>
    </div>
    <div>On 22/03/2020 23:14, Oliver Beckstein
      wrote:<br>
    </div>
    <blockquote type="cite">
      
      Hello TNG people,
      <div><br>
      </div>
      <div>Apologies for the delayed reply.<br>
        <div><br>
        </div>
        <div>My take-away from your comments on the TNG library
          are:</div>
        <div><br>
        </div>
        <div>1. TNG has all major features defined (although a
          more polished API might be desirable).</div>
        <div>2. You consider the current C code in  <a href="https://github.com/gromacs/tng" target="_blank">https://github.com/gromacs/tng</a> as
          the reference implementation </div>
        <div>3. More tests would be welcome.</div>
        <div>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" target="_blank">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>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><br>
        </div>
        <div>We can advertise the project as </div>
        <div><br>
        </div>
        <div>1. Port existing TNG C code to C++</div>
        <div>2. Write the API documentation  (doxygen strings +
          minimal example for how to use the library)</div>
        <div>3. Stretch goal: Create a Python wrapper (based
          on <a href="https://github.com/MDAnalysis/pytng" target="_blank">https://github.com/MDAnalysis/pytng</a> or
          other approaches).</div>
        <div><br>
        </div>
        <div>Questions:</div>
        <div><br>
        </div>
        <div>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><br>
        </div>
        <div>@Paul: would you be able to co-mentor a student
          (primarily 1 and 2)?</div>
        <div><br>
        </div>
        <div>@Magnus: would you be available for consultations
          – basically, replying to emails on whatever mailing list/issue
          tracker the conversation will happen?</div>
        <div><br>
        </div>
        <div>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><br>
        </div>
        <div>There’s no guarantee that this project will be
          chosen but we would see by March 31 (application deadline). </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>Oliver</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div><br>
          <div>
            <blockquote type="cite">
              <div>On Mar 19, 2020, at 1:16 AM, Paul bauer &lt;<a href="mailto:paul.bauer.q@gmail.com" target="_blank">paul.bauer.q@gmail.com</a>&gt;
                wrote:</div>
              <br>
              <div>
                <div>Hello,<br>
                  <br>
                  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>
                  I can also see that I help with mentoring from the
                  GROMACS side, to help with providing a smooth
                  integration process.<br>
                  <br>
                  Cheers<br>
                  <br>
                  Paul<br>
                  <br>
                  On 19/03/2020 09:13, Magnus Lundborg wrote:<br>
                  <blockquote type="cite">Hi,<br>
                    <br>
                    As the main developer of the TNG API I&#39;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>
                    <br>
                    On 2020-03-18 21:17, David van der Spoel wrote:<br>
                    <blockquote type="cite">Den 2020-03-18 kl.
                      19:20, skrev Oliver Beckstein:<br>
                      <blockquote type="cite">Hello Gromacs
                        Developers,<br>
                        <br>
                        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" target="_blank">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" target="_blank">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>
                      </blockquote>
                      <br>
                      Great initiative!<br>
                      <br>
                      <blockquote type="cite"><br>
                         1. Fully define the API and capabilities of
                        TNG.<br>
                      </blockquote>
                      The existing functionality or would you add stuff
                      that has been disccussed for a long time like
                      energies and other data blocks?<br>
                    </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>
                    <blockquote type="cite"><br>
                      <blockquote type="cite"> 2. Write
                        documentation.<br>
                         3. Write a reference library implementation (C
                        or C++).<br>
                      </blockquote>
                      How would that be different from the existing
                      implementation?<br>
                    </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
                    &quot;late add-ons&quot;.<br>
                    <blockquote type="cite"><br>
                      <blockquote type="cite"> 4. Write tests.<br>
                      </blockquote>
                    </blockquote>
                    There are some functionality tests in the TNG
                    library, but more extensive unit tests would of
                    course be good.<br>
                    <blockquote type="cite">
                      <blockquote type="cite"> 5. Bonus: Write
                        Python bindings (see start in our pytng<br>
                            &lt;<a href="https://github.com/MDAnalysis/pytng" target="_blank">https://github.com/MDAnalysis/pytng</a>&gt;
                        library) and integrate with<br>
                            MDAnalysis<br>
                      </blockquote>
                      <br>
                      <blockquote type="cite"><br>
                        This project outline is not set in stone and we
                        would be more than happy to adapt it according
                        to your expert input.<br>
                        <br>
                        We have at least one promising candidate student
                        who is interested in working on this project
                        during 10 weeks this summer.<br>
                        <br>
                        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/" target="_blank">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>
                      </blockquote>
                    </blockquote>
                    I could hopefully clarify some things in the
                    beginning of the project and possible during as
                    well, but I&#39;m afraid I cannot promise any regular
                    co-mentoring.<br>
                    <blockquote type="cite">
                      <blockquote type="cite"><br>
                        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>
                        <br>
                        Thank you!<br>
                        <br>
                        Oliver (for the MDAnalysis GSoC 2020 Mentors)<br>
                        <br>
                        <br>
                        <br>
                        -- <br>
                        Oliver Beckstein, DPhil * <a href="mailto:oliver.beckstein@asu.edu" target="_blank">oliver.beckstein@asu.edu</a>
                        &lt;<a href="mailto:oliver.beckstein@asu.edu" target="_blank">mailto:oliver.beckstein@asu.edu</a>&gt;<br>
                        <a href="https://becksteinlab.physics.asu.edu/" target="_blank">https://becksteinlab.physics.asu.edu/</a><br>
                        <br>
                        Associate Professor of Physics<br>
                        Arizona State University<br>
                        Center for Biological Physics and Department of
                        Physics<br>
                        Tempe, AZ 85287-1504<br>
                        USA<br>
                        <br>
                        Office: PSF 348<br>
                        Phone: +1 (480) 727-9765<br>
                        FAX: +1 (480) 965-4669<br>
                        <br>
                        Department of
                        Physics: <a href="https://physics.asu.edu/content/oliver-beckstein" target="_blank">https://physics.asu.edu/content/oliver-beckstein</a><br>
                        Center for Biological
                        Physics: <a href="https://cbp.asu.edu/content/oliver-beckstein" target="_blank">https://cbp.asu.edu/content/oliver-beckstein</a><br>
                        <br>
                        <br>
                      </blockquote>
                      <br>
                      <br>
                    </blockquote>
                    <br>
                  </blockquote>
                  <br>
                  -- <br>
                  Paul Bauer, PhD<br>
                  GROMACS Development Manager<br>
                  KTH Stockholm, SciLifeLab<br>
                  0046737308594<br>
                  <br>
                  -- <br>
                  Gromacs Developers mailing list<br>
                  <br>
                  * Please search the archive at <a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" target="_blank">http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a>
                  before posting!<br>
                  <br>
                  * Can&#39;t post? Read <a href="http://www.gromacs.org/Support/Mailing_Lists" target="_blank">http://www.gromacs.org/Support/Mailing_Lists</a><br>
                  <br>
                  * For (un)subscribe requests visit<br>
                  <a href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers" target="_blank">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" target="_blank">gmx-developers-request@gromacs.org</a>.<br>
                </div>
              </div>
            </blockquote>
          </div>
          <br>
          <div>
            <div style="letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
              <div style="letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
                <div style="overflow-wrap: break-word;">
                  <div style="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"><br>
                    --<br>
                    Oliver Beckstein, DPhil * <a href="mailto:oliver.beckstein@asu.edu" target="_blank">oliver.beckstein@asu.edu</a><br>
                    <a href="https://becksteinlab.physics.asu.edu/" target="_blank">https://becksteinlab.physics.asu.edu/</a><br>
                    <br>
                    Associate Professor of Physics<br>
                    Arizona State University<br>
                    Center for Biological Physics and Department of
                    Physics<br>
                    Tempe, AZ 85287-1504<br>
                    USA<br>
                    <br>
                    Department of
                    Physics: <a href="https://physics.asu.edu/content/oliver-beckstein" target="_blank">https://physics.asu.edu/content/oliver-beckstein</a><br>
                    Center for Biological
                    Physics: <a href="https://cbp.asu.edu/content/oliver-beckstein" target="_blank">https://cbp.asu.edu/content/oliver-beckstein</a></div>
                </div>
              </div>
            </div>
          </div>
          <br>
        </div>
      </div>
      <br>
      <fieldset></fieldset>
    </blockquote><p><br>
    </p>
    <pre cols="72">-- 
Paul Bauer, PhD
GROMACS Development Manager
KTH Stockholm, SciLifeLab
0046737308594</pre>
  </div>

-- <br>Gromacs Developers mailing list<br><br>* Please search the archive at <a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" target="_blank">http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a> before posting!<br><br>* Can&#39;t post? Read <a href="http://www.gromacs.org/Support/Mailing_Lists" target="_blank">http://www.gromacs.org/Support/Mailing_Lists</a><br><br>* For (un)subscribe requests visit<br><a href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers" target="_blank">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" target="_blank">gmx-developers-request@gromacs.org</a>.</div></blockquote></div><br><div>
<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"><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"><div style="overflow-wrap: break-word;"><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"><br>--<br>Oliver Beckstein, DPhil * <a href="mailto:oliver.beckstein@asu.edu" target="_blank">oliver.beckstein@asu.edu</a><br><a href="https://becksteinlab.physics.asu.edu/" target="_blank">https://becksteinlab.physics.asu.edu/</a><br><br>Associate Professor of Physics<br>Arizona State University<br>Center for Biological Physics and Department of Physics<br>Tempe, AZ 85287-1504<br>USA<br><br>Department of Physics: <a href="https://physics.asu.edu/content/oliver-beckstein" target="_blank">https://physics.asu.edu/content/oliver-beckstein</a><br>Center for Biological Physics: <a href="https://cbp.asu.edu/content/oliver-beckstein" target="_blank">https://cbp.asu.edu/content/oliver-beckstein</a></div></div></div></div>
</div>
<br></div></div>-- <br>
Gromacs Developers mailing list<br>
<br>
* Please search the archive at <a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" rel="noreferrer" target="_blank">http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a> before posting!<br>
<br>
* Can&#39;t post? Read <a href="http://www.gromacs.org/Support/Mailing_Lists" rel="noreferrer" target="_blank">http://www.gromacs.org/Support/Mailing_Lists</a><br>
<br>
* For (un)subscribe requests visit<br>
<a href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers" rel="noreferrer" target="_blank">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" target="_blank">gmx-developers-request@gromacs.org</a>.</blockquote></div>