gvbarroso / iSMC

The integrated Sequentially Markovian Coalescent
GNU General Public License v3.0
11 stars 3 forks source link

iSMC looking for ziphmm_XYZ run directory in two locations #12

Closed andreaswallberg closed 1 year ago

andreaswallberg commented 1 year ago

Dear developers,

I have compiled and successfully run iSMC for a non-model organism, but I am having a problem with how data is saved and accessed. Early in the run, iSMC is looking for the ziphmm_XYZ data directory directly under root "/ziphmm_XYZ" and then under the relative position "ziphmm_XYZ" in the current directory.

This makes for a really cumbersome analysis, where I have to be root to pre-generate the expected directories (named after the blocks in the analyses) directly under the root directory and also symlink to these directories from my current directory.

Any idea what may have gone wrong? My feeling is that an expected path is not configured, either at compile-time or run-time. Any tips are much appreciated!

Thanks for a very interesting tool!

gvbarroso commented 1 year ago

Hi Andreas,

This processes of writing/reading the ziphmm data structures to/from disk has always disturbed me a little, but I never had the bandwidth to improve it. Motivated by your issue, I finally decided to get rid of it and apparently it was simpler than I anticipated. It should be fixed now, and as a side note, the program is also running faster.

andreaswallberg commented 1 year ago

This fix seems to work great. Is ziphmm data written to disk at all, such that there is still a potential a risk of collision between parallel runs?

If not, it seems like after the fix, the program can now safely be run without parallel possibly jobs interfering with each other by writing to the same ziphmm directory.

gvbarroso commented 1 year ago

That is correct. Just remember to give different labels to the options files of jobs running on the same folder, otherwise the rest of the iSMC output will collide.