rinikerlab / PyGromosTools

This package is a python library with tools for the Molecular Simulation - Software Gromos. It allows you to easily set up, manage and analyze simulations in python.
https://rinikerlab.github.io/PyGromosTools/
MIT License
16 stars 14 forks source link

Repex submission new #222

Closed candidechamp closed 2 years ago

candidechamp commented 2 years ago

Description

This pull request includes the addition of code to submit replica exchange (Temperature, Hamiltonian, and RE-EDS) simulations using the exact same convention as for normal simulations.

In short the call to the code in schedule_MD_job.py written by the simulation scheduler will automtaically adjust everything it needs to dispatch the calculation to either md, md_mpi or repex_mpi.

The waiting for output files was adjusted to wait for all N (number of replicas) output cnfs. Similarly the path provided is slightly adjusted to match the convention of gromos for replica exchange depending on the presence / absence of the CONT keyword.

The code was also tested with regular MD simulations, and there was no problem in submitting / zipping files for those.

@MTLehner @pultar As you might be the most frequent users of pyGromos at the moment you might want to checkout my branch and see if the submission for your systems still works fine!

Todos

pultar commented 2 years ago

Will check it out later!

codecov[bot] commented 2 years ago

Codecov Report

Merging #222 (8a697bf) into release3 (80ba1ed) will decrease coverage by 0.09%. The diff coverage is 19.54%.

Impacted file tree graph

@@             Coverage Diff              @@
##           release3     #222      +/-   ##
============================================
- Coverage     54.63%   54.54%   -0.10%     
============================================
  Files            92       92              
  Lines         13884    13902      +18     
============================================
- Hits           7586     7583       -3     
- Misses         6298     6319      +21     
Flag Coverage Δ
unittests 54.54% <19.54%> (-0.10%) :arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
...orkers/simulation_workers/simulation_run_worker.py 10.41% <2.27%> (-2.80%) :arrow_down:
pygromos/gromos/gromosXX.py 13.51% <11.11%> (-0.03%) :arrow_down:
pygromos/files/blocks/imd_blocks.py 79.04% <54.16%> (+2.16%) :arrow_up:
pygromos/files/simulation_parameters/imd.py 64.23% <100.00%> (-0.77%) :arrow_down:
pygromos/utils/utils.py 75.22% <0.00%> (+2.65%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 80ba1ed...8a697bf. Read the comment docs.

candidechamp commented 2 years ago

@pultar Very good to hear that your simulations are unaffected and still run well with these changes.

Concerning the initialize_first_run variable. I would tend to say that the value should be True by default (as you typically don't have a cnf which already has velocities when you want to run your first MD).

But I don't have particularly strong feelings about it either. I just know that one (and maybe more) of the downstream functions such as those in pygromos/simulations/hpc_queuing/job_scheduling/workers/simulation_workers/simulation_run_worker.py has the default set to True.

As long as all functions with they argument have the same default then I am happy.

candidechamp commented 2 years ago

note: I only fixed some merge conflicts in this previous merge. I still have a few more things to do on this branch so it should not be merged just yet.

candidechamp commented 2 years ago

I am closing the pull request as I re-implemented these changes (with slight improvements in a different branch, see #288)