determine future of existing tools for - Redmine #1323
We have about 95 tools. Those that are pre-processing and general support code will be retained, perhaps with updates as APIs emerge:
genrestr - remove (unless selection code + existing output routines will
be painless)
pdb2gmx - retain in current form
grompp - retain, but do any necessary clean up so that a one-shot call
to mdrun is also possible
mdrun - retain, all bets are still off!
tpbconv - retain in current form
trjconv - retain but make explicit splits of its functionality (one
tool, one function principle), and add support for dynamic selections
g_x2top - retain in current form
genbox - retain in current form
genconf - retain in current form
genion - retain in current form
g_tune_pme - retain in current form
g_pme_error - retain (Xavier Periole has plans to update it)
xpm2ps - retain only if we still write xpm instead of some matrix format
that actually has numbers people can actually use
That leaves about 85. We are not going to have the manpower to port more than a core set of them to the new analysis framework. For outright removal, I nominate:
g_protonate - remove
g_enemat - remove
g_sigeps - remove
g_morph - remove
g_anadock - remove, this is not even a GROMACS tool
g_dyndom - remove, this is not even a GROMACS tool
g_dih - already went before 4.6
In particular, these tools should probably change form quite a bit:
editconf - keep, probably implement core with analysis framework, niche
functionality should disappear
g_select - generally superseded by support in new framework, but need
to retain the ability to write an index-like file
make_ndx - retain, or implement as static selection from new
framework
mk_angndx - retain, or implement as static selection from new framework
A bunch of the analyses should be fairly straightforward to implement as
- make (static or dynamic) selection
- loop over trajectory frames, filter those that don’t suit any applicable criteria
- apply selection, do any computation in a module, write output
There are current modules for computing a displacement, histogram, average & standard deviation; clearly there’s a few more we’d like to have. Adding some kind of useful output matrix format is something to which I will contribute. There’s a partial implementation of g_dist and g_angle in master branch now. Doing much of anything more needs us (me) to pull out some thumb and do some work so we can agree on the future of rvec.
The remaining ~70 analysis tools are not going to port themselves. On form and history, I expect that most of them will just sit there because they were written for one-time use for some publication and nobody cares any more. Thanks to just part of Teemu’s heroic volunteer work, master branch supports “gmx g_rama -whatever” and I expect that this is how many of the tools will remain until someone wants features like dynamic selections and/or any parallelism support that emerges. If having to do a two-pass “trjconv for dynamic selection then call analysis tool” annoys people enough then we’ll get some contributions of code, but the magic C code fairy has already moved mountains for us…
Fringe functionality of any tool that is ported will likely be omitted - particularly if it is readily/better done with some kind of external script. Adding it back later is much better than guessing in advance what people actually want.
Which of our existing tools would most benefit from dynamic selections, so that we can best focus on something useful to deliver for 5.0?
Even if you can’t contribute much for lack of time or C skills, you can certainly help by offering characteristic input and output. One of the big problems is that nobody knows what combinations of tools’ options actually work. Input+output+somebody’s belief in existing correctness is what will be needed for porting any analysis tool for which the correctness of the implementation cannot be assessed with confidence by inspection of the code!
(from redmine: issue id 1323, created on 2013-08-21 by mark.j.abraham)
- Relations:
- relates #665 (closed)
- relates #921 (closed)
- relates #1971 (closed)
- relates #2037 (closed)
- Changesets:
- Revision c5e057f3 by David van der Spoel on 2018-12-04T10:17:49Z:
Removed gmx anadock
Part of #1323
Change-Id: I77c04e08a8245db38530e9aa4113447cc02672a8
- Revision 61adbf69 by David van der Spoel on 2018-12-04T10:26:32Z:
Removed gmx dyndom
Part of #1323
Change-Id: I07f5cfed364e13fbd6a8b6e0fc94b4b15ef67589
- Revision 2ea2d842 by David van der Spoel on 2018-12-04T10:53:21Z:
Removed gmx morph
Part of #1323
Change-Id: Ife56a50e61e4859fa20a39a1be59e828d511fd09