luancarvalhomartins / PyAutoFEP

PyAutoFEP: an automated FEP workflow for GROMACS integrating enhanced sampling methods
163 stars 76 forks source link

Can't run analyze_results.py #90

Closed hlzfoxcn closed 1 year ago

hlzfoxcn commented 1 year ago

Hello, thank you for your contribution to FEP calculation, I have a problem following PyAutoFEP Tutorial 01.sdf with the following error message: All available analysis will be run ================== Pairwise ΔΔG ================== Perturbation protein water

=================== STACK INFO =================== File "xx/PyAutoFEP/analyze_results.py", line 1821, in method=arguments.center_ddg_method) File "xx/install/PyAutoFEP/analyze_results.py", line 1039, in ddg_to_center_ddg current_verbosity=verbosity) File "xx/PyAutoFEP/os_util.py", line 311, in local_print formatted_string = '\n{:=^50}\n{}{:=^50}\n'.format(' STACK INFO ', ''.join(traceback.format_stack()), =================== STACK INFO =================== [ERROR] Could not find a path to connect nodes FXR_74 and FXR_12. Cannot go on. Check the perturbations and your input graph. Alternatively, rerun with no_checks to force execution and ignore this error. Traceback (most recent call last): File "xx/PyAutoFEP/analyze_results.py", line 1024, in ddg_to_center_ddg ddg_to_center[each_node] = sum_path(ddg_graph, each_path, ddg_key=ddg_key) File "xx/PyAutoFEP/analyze_results.py", line 986, in sum_path raise networkx.exception.NetworkXNoPath('Edge between {} {} not found in graph {}'.format(node_i, node_j, g0)) networkx.exception.NetworkXNoPath: Edge between FXR_12 FXR_74 not found in graph DiGraph with 3 nodes and 2 edges

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "xx/PyAutoFEP/analyze_results.py", line 1821, in method=arguments.center_ddg_method) File "xx/PyAutoFEP/analyze_results.py", line 1040, in ddg_to_center_ddg raise networkx.exception.NetworkXNoPath(error) networkx.exception.NetworkXNoPath: Edge between FXR_12 FXR_74 not found in graph DiGraph with 3 nodes and 2 edges

I also encountered some errors before this, but it was solved after I set gmx_bin_run = gmx and output_hidden_temp_dir=False in the step.ini file, in order to save testing time, I only kept the FXR_12, FXR_74 and FXR_76 in lig_data folder, the gromacs I used is the 2021 version, the environment is built strictly according to the instructions of the readme.md, I can't figure out what caused the error, and I can't find a solution in the manual.pdf, can you help me? thanks.

hlzfoxcn commented 1 year ago

I found the bash runall.sh nohup log with the following results: tar: /water/md/rerun/.pkl: Cannot stat: No such file or directory tar: /water/md/rerun/.xvg: Cannot stat: No such file or directory tar: /water/md/rerun/.edr: Cannot stat: No such file or directory tar: /protein/md/rerun/.pkl: Cannot stat: No such file or directory tar: /protein/md/rerun/.xvg: Cannot stat: No such file or directory tar: /protein/md/rerun/.edr: Cannot stat: No such file or directory tar: /protein/md/lambda/lambda_pbcfit.xtc: Cannot stat: No such file or directory tar: /protein/md/lambda/lambda.log: Cannot stat: No such file or directory tar: /protein/md/lambda/lambda.edr: Cannot stat: No such file or directory tar: /water/md/lambda/lambda.xtc: Cannot stat: No such file or directory tar: /water/md/lambda/lambda.log: Cannot stat: No such file or directory tar: /water/md/lambda/lambda.edr: Cannot stat: No such file or directory tar: /protein/md/lambda/analysis.log: Cannot stat: No such file or directory tar: Exiting with failure status due to previous errors

and I also found feprun_025324_02062023.log with the following results: GROMACS: gmx mdrun, version 2021.6 Executable: xx/gromacs_2021/bin/gmx Data prefix: xx/gromacs_2021 Working dir: xx/PyAutoFEP/docs/tutorial01/test/tutorial/FXR_12-FXR_74/protein/md Command line: gmx mdrun -v --deffnm lambda -cpi lambda.cpt -multidir lambda0 lambda1 lambda2 lambda3 lambda4 lambda5 lambda6 lambda7 lambda8 lambda9 lambda10 lambda11


Program: gmx mdrun, version 2021.6 Source file: src/gromacs/mdrunutility/multisim.cpp (line 69) Function: std::unique_ptr buildMultiSimulation(MPI_Comm, gmx::ArrayRef<const std::basic_string >)

Feature not implemented: Multi-simulations are only supported when GROMACS has been configured with a proper external MPI library.

For more information and tips for troubleshooting, please check the GROMACS website at http://www.gromacs.org/Documentation/Errors

......(other log like this)

I found this line of command in my runall.sh: mpirun -np $(ls | egrep "lambda[0-9]+$" | wc -l) gmx mdrun -v --deffnm lambda -cpi lambda.cpt -multidir $(ls -v | egrep "lambda[0-9]+$") >& feprun$(date "+%H%M%S%d%m%Y").log || { echo "mdrun failed at line ${LINENO} "; exit -1; }

I guess if there is a conflict between mpirun and gmx, to use gmx_mpi, but gmx_bin_run = gmx indicates that the software supports the use of gmx, so I have some doubts, can you tell me what needs to be done? thanks.

Layne-Huang commented 1 year ago

Hi,

I have met the same issue. Did you solve it?

hlzfoxcn commented 1 year ago

Not solved

luancarvalhomartins commented 1 year ago

You are passing a gmx binary to gmx_bin_run. This is incorrect. You must pass a gmx_mpi binary (ie, a GROMACS binary compiled with MPI enabled). I am adding a warning to the prepare_dual_topology.py in that case.

Would you mind checking that passing the correct binary solves the problem?