We have installed this on an nfs share to be used by an hpc cluster. Regular users do not have write access to the directory where the run_MaxBin.pl script is installed.
When invoking the perl script we get "Permission Denied errors" because the it wants to create tmp files in the same directory where the perl script is invoked. I have the following suggestiong to fix this issue.
Change line 1331 in the run_MaxBin.pl script from
my $tmpname = "tmp_" . time();
to
my $tmpname = $ENV{HOME} . "/tmp_" . time();
The will create the tmp files in the users home directory instead of the currently directory. Better yet. . there should be an option to specify where these tmp files go.
Secondly, there is no cleanup of these files after the perl script is invoked. . .
Dear Vinh Phan,
Thank you for your suggestions in the code. I certainly did not thought about this possibility but will be very happy to test your suggestion in various conditions and incorporate that into the new version. The no-cleanup is also possibly related to this condition. Thanks for letting me know that.
Yu-Wei,
I seems there are more executables that are creating files directly in the same directory . .
marker.hmm and bacar_marker.hmm. . these both create files called "d" "i" and "m". Do you have a suggestion how we can specify and output directory for these files?
Hi. I tried to trace the cause of the problem but found that I cannot replicate your problem since I am not working on a cluster. The perl script will try to locate the Bin directory and the current directory; however I do not know what these directories are on the cluster run. For example, if I install MaxBin in "/usr/bin/MaxBin", and I tried to run it from "/home/yuwwu/maxbin_test", then the Bin directory is /usr/bin/MaxBin and the current directory would be /home/yuwwu/maxbin_test. I guess it would be beneficial to know what these directories are during a cluster run. Could you please enlighten me on that? Thanks.