statgen / savvy

Interface to various variant calling formats.
Mozilla Public License 2.0
26 stars 5 forks source link

Error isntalling this package for saige #30

Open akhilpampana opened 1 year ago

akhilpampana commented 1 year ago

Hello,

I am trying to install this package as part of Saige and I am getting an error like this.

Downloading https://github.com/statgen/savvy/archive/v2.1.0.tar.gz
Unexpected error: <class 'OSError'>
[Errno socket error] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)
Failed to build package statgen/savvy

May I know how to rectify this error?

~Akhil

jonathonl commented 1 year ago

Are you able to run wget https://github.com/statgen/savvy/archive/v2.1.0.tar.gz without error? If not, it's probably a network or firewall issue.

If downloading with wget does work, then this is a python issue. There are various solutions to this error on the internet, but the correct solution depend on what is causing python to throw that error. I would start with trying pip install --upgrade certifi (https://stackoverflow.com/a/43855394). Another alternative is to install savvy manually and modify the configure script in SAIGE to not remove the thirdParty/cgetdirectory and to not use cget to install savvy.

akhilpampana commented 1 year ago

Are you able to run wget https://github.com/statgen/savvy/archive/v2.1.0.tar.gz without error? If not, it's probably a network or firewall issue.

--> I could able to download the file which rules out the firewall issue

If downloading with wget does work, then this is a python issue. There are various solutions to this error on the internet, but the correct solution depend on what is causing python to throw that error. I would start with trying pip install --upgrade certifi (https://stackoverflow.com/a/43855394).

--> I tried this method still getting the issue above

Another alternative is to install savvy manually and modify the configure script in SAIGE to not remove the thirdParty/cgetdirectory and to not use cget to install savvy.

--> how do I install without savvy?

jonathonl commented 1 year ago

To install savvy without cget you can untar the the file you just downloaded and then cd savvy-2.1.0/. From the savvy-2.1.0 directory, run cmake -P cmake/get-dependencies.cmake /path/to/SAIGE where /path/to/SAIGE is the directory path of the SAIGE clone from github. Then in /path/to/SAIGE/configure, comment out the 3 lines at https://github.com/weizhouUMICH/SAIGE/blob/master/configure#L20-L22 to prevent SAIGE from deleting the cget directory during the SAIGE install.

jonathonl commented 1 year ago

You may need to run export CFLAGS="-fPIC" before running the steps above.

akhilpampana commented 1 year ago

Thank you so much. I will try and get back to you if any more questions.

akhilpampana commented 1 year ago

Hello, I tried as suggested and now I am getting error like this:

VCF.cpp:4:10: fatal error: savvy/reader.hpp: No such file or directory
    4 | #include "savvy/reader.hpp"
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [VCF.o] Error 1
ERROR: compilation failed for package 'SAIGE'

Any idea how to resolve it?

jonathonl commented 1 year ago

SAIGE looks for includes at https://github.com/weizhouUMICH/SAIGE/blob/master/src/Makevars#L14 relative to the directory where Makevars is found in. So /path/to/SAIGE in the instructions above should be /path/to/SAIGE/thirdParty/cget. You will also need to copy the Savvy includes to where SAIGE is looking for inlucdes: cp -r /path/to/savvy/include/savvy /path/to/SAIGE/thirdParty/cget/include/savvy. Ultimately, Savvy and all of it's dependencies need to be installed in the path where SAIGE looks for its dependencies.

jingydz commented 1 year ago

I also used the way you said, but I also couldn't install successfully, did anyone experience the same problem?

Logfile

Waf: The wscript in '/xxx/software/SAIGE/SAIGE/thirdParty/bgen' is unreadable Traceback (most recent call last): File "/xxx/software/SAIGE/SAIGE/thirdParty/bgen/.waf3-2.0.6-f8aee10f7730da942389d88501d489e8/waflib/Scripting.py", line 101, in waf_entry_point set_main_module(os.path.normpath(os.path.join(Context.run_dir,Context.WSCRIPT_FILE))) File "/xxx/software/SAIGE/SAIGE/thirdParty/bgen/.waf3-2.0.6-f8aee10f7730da942389d88501d489e8/waflib/Scripting.py", line 141, in set_main_module Context.g_module=Context.load_module(file_path) File "/xxx/software/SAIGE/SAIGE/thirdParty/bgen/.waf3-2.0.6-f8aee10f7730da942389d88501d489e8/waflib/Context.py", line 360, in load_module exec(compile(code,path,'exec'),module.dict) File "/xxx/software/SAIGE/SAIGE/thirdParty/bgen/wscript", line 33 print "Creating %s build..." % bld.options.mode ^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Creating %s build..." % bld.options.mode)?

jonathonl commented 1 year ago

@jingydz, these error messages are not related to Savvy. Potentially a read permission issue when installing the bgen dependency.