The future direction of the flamel #12
Replies: 15 comments
-
fair enough. I wasn't aware of the alchemlyb workflows but I think this is a good direction to circumvent further code duplication. With the current state of flamel and it's plugin system, there is already a lot of unneccesary code wrapping around what alchemlyb already provides. Therefore, a more lightweight Flamel that simply passes CLI args to workflows sounds like a good idea to me. I think there should still be tests, but ideally they can be limited to integration tests for CLI parsing. |
Beta Was this translation helpful? Give feedback.
-
@danijoo Sorry for the confusion. After I had a review of your PR, I tagged you in that workflows PR (alchemistry/alchemlyb#114 (comment)) but I guess GitHub had another glitch that it didn't reach you. When the workflow PR is merged or we eventually decided that the better place for it is here, your contribution is very welcomed. I wonder what is your preferred software? The current workflow has been tested against Gromacs but it would be extremely helpful if users of other software could chip in. |
Beta Was this translation helpful? Give feedback.
-
Perhaps we should have a conference call for discussion, @xiki-tempula @danijoo (and @dominikwille / @harlor ?). @alchemistry/alchemlyb (@dotsdl @davidlmobley @mrshirts @jchodera et al) do you have an opinion on how to move forward with alchemlyb/flamel ? Our alchemlyb roadmap for alchemlyb itself has been broadly completed except the CLI part (see also MobleyLab/alchemical-analysis#111 ). But an immediate question is if we should include more complex analysis workflows in alchemlyb itself, inside flamel, or possibly as their own package (see my current opinion in alchemistry/alchemlyb#114 (review)). I'd be happy to host a call for a discussion of the next steps for alchemlyb. Please say something here if you want to be included. Please also feel free to simply voice your opinion. |
Beta Was this translation helpful? Give feedback.
-
Hi, all- I'd be happy to have a call to discuss future plans for alchemlyb. I have some thoughts an opinions on workflows (some of which I probably should have brought up earlier). If there are other issues/etc that it would be useful for me to look at before then, that would be great. In terms of workflows - I think it depends what one means. Anything that is adaptive (run simulations, do analysis, then run more simulations) gets very complicated, and very likely to break on corner cases, and will require a lot of support. A reason for this is that the analysis usually requires specific physical information that is relatively easy to abstract from the simulations files, whatever they are, since they are configurations and energies, but running a simulation requires a lot more decisions and is package-dependent. I would prefer alchemlyb to focus on things that are just analysis, and perhaps anything that wraps around distributed separately. In terms of just analysis, then flamel I could see belonging within alchemlyb, since it just analysis; but it's fine to be in a separate repository as well (and perhaps cleaner). Anything that is adaptive, i.e. runs simulations, should be somewhere else. I can think of potentially a corner case where one would want to do reweighting, i.e. automate taking a trajectory that has been produced and calculating energies at new states -- but even that requires too much information about running the simulation. So maybe the most complicated thing that might make sense is reweighting of configurational variables, like for example expectation of radius of gyration - where one would need to call, for example, md_analysis on the trajectory in order to do the reweighting. But that ONLY requires handling the simulation output, not the simulation input. |
Beta Was this translation helpful? Give feedback.
-
For clarification: The word "workflows" was used in a very limited sense of stringing multiple alchemlyb analysis building blocks together (see PR alchemistry/alchemlyb#114 for context). At this point the discussion did not include directing simulations. |
Beta Was this translation helpful? Give feedback.
-
Hi, Regarding the question if the workflows should be part of flamel or alchemlyb, my opinion is: none. On one hand, I can definitely see people using these workflows outside of a CLI environment to build their own toolset, ie for adaptive sampling etc. Therefore, I think flamel is not the right place to put them at all. Ideally, flamel can be kept very lightweight with just a few integration tests to see if it uses the logic of the workflow/alchemlyb code in the intended way. I feel like a new repository for the workflows ( |
Beta Was this translation helpful? Give feedback.
-
I don't have any concrete plans on my end right now, but want to be in the loop, and may get involved in more concrete planning in the next couple of months. |
Beta Was this translation helpful? Give feedback.
-
Actually, I don't have a strong option on where the workflows should be implemented. But I agree that it is nice to have it implemented in such a way that one can use them w/o the CLI. Even-though I'm not sure that I'll be able to contribute much to the future development. I'd be happy to join the workflow discussion call. |
Beta Was this translation helpful? Give feedback.
-
If you are interested in participating in a discussion please indicate your availability in the Doodle poll: Future of Alchemlyb. Once I have a time I'll add a Zoom link to this issue. Even if you don't participate in the poll you'll still be welcome to join the call. |
Beta Was this translation helpful? Give feedback.
-
At the cost of the complexity getting shifted to another place, I'm in favor of an It can also make it easier to move quickly for those interested in workflow development, as they won't need to pass as high a barrier to progress for getting things into |
Beta Was this translation helpful? Give feedback.
-
I'll close the poll on Monday 8/23 morning. Thanks to everyone who already responded. |
Beta Was this translation helpful? Give feedback.
-
We will have a Zoom call on Wed 25 August 2021, 21:00 UTC = 2pm AZ = 2pm Los Angeles = 22:00 London (UK) = 23:00 Berlin (Germany). Everybody with an interest in alchemlyb is welcome. Below is what I would use as the agenda. Please feel free to add/change/discuss. Preliminary Agenda
Zoom call infoOliver Beckstein is inviting you to a scheduled Zoom meeting. Topic: future of alchemlyb Join from PC, Mac, Linux, iOS or Android: https://asu.zoom.us/j/88958628322 Or Telephone: Or iPhone one-tap (US Toll): +16027530140,,88958628322# or +16692192599,,88958628322# |
Beta Was this translation helpful? Give feedback.
-
Please see discussion (not an issue) alchemistry/alchemlyb#159 for the summary of the meeting. Feel free to continue the discussion there. P.S.: I enabled alchemlyb/discussions as a forum outside the issue tracker. |
Beta Was this translation helpful? Give feedback.
-
We decided to add "robust and general workflows" to alchemlyb (see Mission and API principles) as discussed in alchemistry/alchemlyb#159 . Following up on @xiki-tempula 's original #8 (comment) and #8 (comment) , the likely direction is to turn flamel into a thin CLI. I suggest the following, summarizing the discussion and adding my own take:
|
Beta Was this translation helpful? Give feedback.
-
I created two historical releases with the original flamel (plugin-based approach)
Post 0.2.0, the code was changed completely by @xiki-tempula to become a thin CLI around |
Beta Was this translation helpful? Give feedback.
-
@orbeckst @harlor @danijoo
I think it might be good to have a discussion about the future of flamel and its relationship with alchemlyb, before committing to it.
My vision of the alchemlyb would be that it would have two parts, the library part and the workflow part.
The workflow part currently only have the ABFE workflow (alchemistry/alchemlyb#114), which provides the same interface as the alchemical-analysis.
The goal of Flamel will be to transform this python interface into CLI.
There are obviously reasons against this assignment as it would be a departure from the alchemlyb philosophy & principles
However, there are also reasons for this assignment.
The first would be to avoid code duplication. From what I can see, the decorrelation part will be a duplication of the alchemistry/alchemlyb#98.
The second is that when more workflows are available, it will be easier to move part of the code that is used by many workflow (e.g. the unit conversion) from the workflow part to the library part, instead of moving the code from one Github repo to another repo.
The third reason is that it will be easier to release Flamel. The current Flamel has a plugin structure that mimics alchemlyb. So there are two questions, do we want to write the doc for each plugins and do we want to test these plugins? Once alchemistry/alchemlyb#114 is merged, the Flamel could be refactored into a simple CLI and we might not need tests and dedicated docs to release it.
Beta Was this translation helpful? Give feedback.
All reactions