veg / hyphy

HyPhy: Hypothesis testing using Phylogenies
http://www.hyphy.org
Other
201 stars 68 forks source link

RELAX not running on HyPhy 2.5.8 #1577

Closed philippaSteinberg closed 1 year ago

philippaSteinberg commented 1 year ago

Hello, I cloned the git repo and created a conda environment in which I have both hyphy and llvm-openmp installed.

When I then run hyphy -i I select (1) and (7) to run RELAX I get the warning:

Current script requires at least version 2.5.21 of HyPhy. Had version 2.5.8. Please download an updated version from http://www.hyphy.org or github.com/veg/hyphy and try again. in call to RequireVersion("2.5.21");

Similarly, when I tried to run the command directly

cd hyphy 
hyphy RELAX --alignment ../alignment.fa --tree ./tree/species_tree.nwk

I get the error log:

Error:Current script requires at least version 2.5.21 of HyPhy. Had version 2.5.8. Please download an updated version from http://www.hyphy.org or github.com/veg/hyphy and try again. in call to RequireVersion("2.5.21");
Current script requires at least version 2.5.21 of HyPhy. Had version 2.5.8. Please download an updated version from http://www.hyphy.org or github.com/veg/hyphy and try again. in call to RequireVersion("2.5.21");

How may I run RELAX from the command line? I tried redownloading the repo to get the newest version and running conda hyphy update but I get the same problem.

spond commented 1 year ago

Dear @philippaSteinberg,

Version 2.5.8 was released in 2019 and the current version is 2.5.48. Installing though conda seems to be pulling that very old version. In fact, conda will completely ignore whatever you have cloned from the repo.

@stevenweaver may have some suggestions on how to get the right version with conda -- I don't use it personally so won't be too much help. I am not sure why you are not getting 2.5.48 since this is the version that I see listed for the Conda package: https://anaconda.org/bioconda/hyphy

If you want to build HyPhy from source you should just follow the instructions in the readme document https://github.com/veg/hyphy/#building-from-source and bypass conda.

Best, Sergei

philippaSteinberg commented 1 year ago

Hello Sergei,

Thank you for your quick reply. Unfortunately, building from source came with its own unusual issues illegal hardware instruction hyphy that I did not have any luck at solving. If using conda to get the latest version continues to not work, I will have to look into that more.

Thanks for your help!

philippaSteinberg commented 1 year ago

well I just got the RELAX to run within my conda environment, even though it is running hyphy 2.5.8 Very strange!

spond commented 1 year ago

Dear @philippaSteinberg,

It would be much better if you could get a later version of HyPhy running because the RELAX analysis has been much improved and enhanced since 2.5.8. It's rather frustrating that conda which is meant to simplify installation fails to do so in this instance.

@stevenweaver : do you have any ideas?

Best, Sergei

stephenshank commented 1 year ago

Dear @philippaSteinberg,

Can you please share the contents of your ~/.condarc file here? Also your OS (Linux, MacOS, Windows, etc.) and architecture (Intel, M1, etc.)?

There has indeed been a recurrent issue of a very small fraction of users receiving outdated versions when installing with conda, and I haven't been able to replicate. So sharing your configuration and experience will be very helpful to us.

Regards, Stephen

stevenweaver commented 1 year ago

Dear @philippaSteinberg and @spond,

After looking at available channels and noticing that there is no channel with 2.5.8 as a latest version, my best guess is that users are sometimes passing environment.yml files around with each other, and that a pinned version of hyphy is in the shared file.

There are two environments on GitHub with a hyphy dependency of 2.5.8, but they don't seem widely used. It is the case, however, that 2.5.8 is downloaded more often than other versions.

@philippaSteinberg -- can you please use the following command conda update hyphy.

@spond -- I'm afraid this is going to be a recurring problem, as it is in the nature of conda users to share environments with each other.

Best, Steven

philippaSteinberg commented 1 year ago

Thanks for your help Steven and Stephen!

Thanks again!

stevenweaver commented 1 year ago

Dear @philippaSteinberg,

Thank you for reporting that this is on Mac, I can reproduce this issue as well. Please stand by.

Best, Steven

stephenshank commented 1 year ago

Dear @philippaSteinberg,

One thing I notice that might be worth a try is that that you do not appear to have strict channel priority or conda-forge as mentioned in the Bioconda setup.

Regards, Stephen

philippaSteinberg commented 1 year ago

@stephenshank Updated my ~/.condarc:

channels:
  - defaults
  - conda-forge
  - bioconda
channel_priority: strict

no difference. So I also tried re-installing hyphy via conda install -c conda-forge hyphy but now when I run hyphy I get Batch file to run: (`/Users/myusername/opt/anaconda3/envs/test/share/hyphy`) instead of the interactive hyphy menu.

stevenweaver commented 1 year ago

Dear @philippaSteinberg,

I am able to reproduce your issue. I'm trying to identify what is going wrong now.

Best, Steven

stevenweaver commented 1 year ago

Dear @philippaSteinberg,

I have been able to resolve the issue on my machine.

Please try the following, I'm going to start from the very beginning to help any others that may find this issue:

conda config --add channels defaults
conda config --add channels bioconda
conda config --add channels conda-forge
conda config --set channel_priority strict

conda update conda
conda update --all
conda install hyphy

When you install hyphy, you should see the following as part of the response:

    package                    |            build
    ---------------------------|-----------------
    hyphy-2.5.48               |       h05566d3_0         4.1 MB  bioconda
    krb5-1.19.3                |       hb49756b_0         1.2 MB  conda-forge
    libcurl-7.87.0             |       ha585b31_0         338 KB
    libgfortran-5.0.0          |12_2_0_h97931a8_30         158 KB  conda-forge
    libgfortran5-12.2.0        |      he409387_30         1.5 MB  conda-forge
    libnghttp2-1.46.0          |       ha29bfda_0         687 KB
    libssh2-1.10.0             |       h7535e13_3         222 KB  conda-forge
    llvm-openmp-15.0.7         |       h61d9ccf_0         287 KB  conda-forge
    mpi-1.0                    |          openmpi           4 KB  conda-forge
    openmpi-4.1.5              |     h4fe9131_100         2.8 MB  conda-forge
    ------------------------------------------------------------
                                           Total:        11.4 MB

Verify that the version is correct before continuing.

Once installed, you can verify that the correct version is installed by issuing the following command

hyphy --version 

You should see something like this :

(base) 12:23:45 sweaver@Stevens-MacBook-Pro.local ~ hyphy --version                                                                                                                                                                                                                           130 ↵
HYPHY 2.5.48(MP) for Darwin on x86_64

Best, Steven

stevenweaver commented 1 year ago

P.S. The reason why such an old version of hyphy is installed by default when the conda-forge channel isn't added is because later versions of the hyphy conda package explicitly state that llvm-openmp is a dependency. Version 2.5.8 didn't despite the fact that it should have.

philippaSteinberg commented 1 year ago

@stevenweaver Thank you so much! This did indeed install the newest version of hyphy. However, I still cannot run hyphy. hyphy -I in my environment runhyphy yields: Batch file to run: (`/Users/philippasteinberg/opt/anaconda3/envs/runhyphy/share/hyphy`). Sorry for all the trouble (I can try to figure this one out myself)!

stevenweaver commented 1 year ago

Dear @philippaSteinberg,

Try the following:

hyphy LIBPATH=/Users/philippasteinberg/opt/anaconda3/envs/runhyphy/share/hyphy -I

Best, Steven

philippaSteinberg commented 1 year ago

Perfect, works! thanks again so much!