rs-station / matchmaps

https://rs-station.github.io/matchmaps/
Other
2 stars 0 forks source link

Phenix environnement not recognised, even when Phenix is installed. #54

Closed ncara closed 2 months ago

ncara commented 2 months ago

Description

Attempting to calculate a difference map with matchmaps, on two datasets that I have already used matchmaps on in the past, before the implementation of the environment safety check for ccp4 and phenix. My Phenix version is 1.19, ccp4 is 8.0, both are working as intended and their environments are correctly sourced.

What I Did

matchmaps --mtzoff resting-state.mtz F SIGF --mtzon time-point.mtz F SIGF --pdboff model.pdb --output-dir output/ --script output/ --dmin 1.03 --verbose --keep-temp-files output/

This produced the following error :

Traceback (most recent call last):
  File "c:\users\blank\miniconda3\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\blank\miniconda3\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\blank\miniconda3\Scripts\matchmaps.exe\__main__.py", line 7, in <module>
    sys.exit(main())
  File "c:\users\blank\miniconda3\lib\site-packages\matchmaps\_compute_realspace_diff.py", line 466, in main
    compute_realspace_difference_map(
  File "c:\users\blank\miniconda3\lib\site-packages\matchmaps\_compute_realspace_diff.py", line 108, in compute_realspace_difference_map
    _validate_environment(ccp4=True)
  File "c:\users\blank\miniconda3\lib\site-packages\matchmaps\_utils.py", line 28, in _validate_environment
    raise OSError(
OSError: phenix is not active in your current environment. Please activate phenix and try again.
For more information, see https://rs-station.github.io/matchmaps/quickstart.html#additional-dependencies

Is there any way that the sanity check on Phenix might give off false "Phenix is not there" results ?

ncara commented 2 months ago

After parsing the code, I can validate that both phenix.refine and scaleit work when used from a bash terminal, with resting-state.mtz time-point.mtz and model.pdb as inputs. However, even after manually disabling the sanity check (comenting the inside of the _validate_environnement function in the _utils.py file, matchmaps still fails with the following error :

15:11:14: Running scaleit to scale 'on' data to 'off' data...
Traceback (most recent call last):
  File "c:\users\blank\miniconda3\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\blank\miniconda3\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\blank\miniconda3\Scripts\rs.scaleit.exe\__main__.py", line 7, in <module>
  File "c:\users\blank\miniconda3\lib\site-packages\rsbooster\scaleit\scaleit.py", line 116, in main
    raise EnvironmentError(
OSError: Cannot find executable, scaleit. Please set up your CCP4 environment.
Traceback (most recent call last):
  File "c:\users\blank\miniconda3\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\blank\miniconda3\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\blank\miniconda3\Scripts\matchmaps.exe\__main__.py", line 7, in <module>
    sys.exit(main())
  File "c:\users\blank\miniconda3\lib\site-packages\matchmaps\_compute_realspace_diff.py", line 466, in main
    compute_realspace_difference_map(
  File "c:\users\blank\miniconda3\lib\site-packages\matchmaps\_compute_realspace_diff.py", line 135, in compute_realspace_difference_map
    mtzon_scaled_py = rs.read_mtz(str(mtzon_scaled))
  File "c:\users\blank\miniconda3\lib\site-packages\reciprocalspaceship\io\mtz.py", line 187, in read_mtz
    gemmi_mtz = gemmi.read_mtz_file(mtzfile)
FileNotFoundError: [Errno 2] Failed to open output\tiome-point_scaled.mtz: Das System kann die angegebene Datei nicht finden.

I take it this means that it was not a false positive, and that matchmaps is indeed not able to find scaleit

ncara commented 2 months ago

Upon inspection of the error messages, I noticed that some of the matchmaps utilities were located in my Windows file systems, and not in my Windows Subsystem for Linux (WSL) Ubuntu install file system. I suspect that WSL overrode the Ubuntu install of matchmaps and pointed bash to a previous matchmaps install on Windows.
Deleting all files in c:\users\blank\miniconda3\lib\site-packages\matchmaps and force reinstalling matchmaps solved all issues. I am closing this as this is clearly a niche WSL issue. Very sorry for the trouble.

dennisbrookner commented 2 months ago

Hey, thanks for raising this issue, and I'm glad you got to the bottom of it!