BioSimSpace
BioSimSpace copied to clipboard
A method of naming the lambda windows for multi-lambda scheme
So I have been trying to implement the multi-lambda protocol and use it for Gromacs Free Energy calculations https://github.com/michellab/BioSimSpace/issues/302.
I think one potential issue is that currently BSS.FreeEnergy.Relative names the lambda windows as "lambda_%5.4f" % lam, which might be problematic for the state where lambda has more than one field {'bonded': 0.8, 'coul': 0.5, 'vdw': 0.0}. I think a better approach would be name the lambda windows as "lambda_%s" % lam_idx ,where one name it as lambda index, but this would mean a change of API so it might need some discussion.
I think this should be okay since the naming is only used internally, e.g. when loading files for analysis within BioSimSpace. If things changed, then we'd just need to make sure that we could still read input given the old layout. If the index was used then it might be worth writing some kind of metadata file to the working directory that specifies that the lambda schedule is, i.e. the value each field takes for a given index.
The existing naming was chosen for consistency with how things were previously done for SOMD and how other tools, such as FESetup, prepared input. As you say, this is likely not ideal given a more complex lambda schedule.
Cheers.
@lohedges Thanks. I wonder with regard to
If things changed, then we'd just need to make sure that we could still read input given the old layout.
It this tested? I mean I could just run unit test to see if I have broken something.
If the index was used then it might be worth writing some kind of metadata file to the working directory that specifies that the lambda schedule is, i.e. the value each field takes for a given index.
I will just dump a csv file from pd.DataFrame
There currently aren't any unit tests for the setup / analysis of full FEP simulations. These are done through our example notebooks, workshops, and tutorials.
@lohedges Thanks for the explanation.
Not that I don't want to add tests in future, so please feel free to do this within the sandpit as required. Part of the issue is the size of input/output files, but we are moving towards a situation where these can be hosted remotely (outside of the repository) and downloaded when the tests are run. Do let me know if you have tests that require particularly large files, since I'd rather these weren't added to the repository if possible.
Cheers.
Let me know which input files you want to put online and I will move them to the new location that is outside the repo. The code to download them is already in feat_web in Sire, and could be pulled out if we want to start using this before I am ready to make a pull request.
@chryswoods Thanks. I plan to have a full setup ready before I begin to test the analysis part.