channotation / chap

CHAP is a tool for the functional annotation of ion channel structures:
http://www.channotation.org
Other
18 stars 10 forks source link

chap. make command fail #17

Closed winsvern closed 4 years ago

winsvern commented 4 years ago

Compiling chap on Ubuntu 16.04 LTS cmake seems to pass all of the tests: compiler working, found GROMACS, etc.

When I issue the make command, I get:

[ 10%] Building CXX object CMakeFiles/chap.dir/src/io/pdb_io.cpp.o In file included from /home/winsvern2/Downloads/CHAP2/chap-version_0_9_1/src/io/pdb_io.cpp:31:0: /home/winsvern2/Downloads/CHAP2/chap-version_0_9_1/include/io/pdb_io.hpp:49:38: error: ‘TopologyInformation’ in namespace ‘gmx’ does not name a type void fromTopology(const gmx::TopologyInformation &top); ^ /home/winsvern2/Downloads/CHAP2/chap-version_0_9_1/src/io/pdb_io.cpp:40:20: error: ‘TopologyInformation’ in namespace ‘gmx’ does not name a type const gmx::TopologyInformation &top) ^ /home/winsvern2/Downloads/CHAP2/chap-version_0_9_1/src/io/pdb_io.cpp: In member function ‘void PdbStructure::fromTopology(const int&)’: /home/winsvern2/Downloads/CHAP2/chap-version_0_9_1/src/io/pdbio.cpp:43:9: error: request for member ‘getTopologyConf’ in ‘top’, which is of non-class type ‘const int’ top.getTopologyConf(&coords, box_); ^ /home/winsvern2/Downloads/CHAP2/chap-version_0_9_1/src/io/pdb_io.cpp:46:29: error: request for member ‘topology’ in ‘top’, which is of non-class type ‘const int’ t_topology *topol = top.topology(); ^ /home/winsvern2/Downloads/CHAP2/chap-version_0_9_1/src/io/pdbio.cpp:50:17: error: request for member ‘ePBC’ in ‘top’, which is of non-class type ‘const int’ ePBC = top.ePBC(); ^ CMakeFiles/chap.dir/build.make:182: recipe for target 'CMakeFiles/chap.dir/src/io/pdb_io.cpp.o' failed make[2]: [CMakeFiles/chap.dir/src/io/pdb_io.cpp.o] Error 1 CMakeFiles/Makefile2:392: recipe for target 'CMakeFiles/chap.dir/all' failed make[1]: [CMakeFiles/chap.dir/all] Error 2 Makefile:138: recipe for target 'all' failed make: *** [all] Error 2 I am sure the answer is simple, but my command of C++ is minimal. Thank you in advance for your help.

Inniag commented 4 years ago

Could you post the output from cmake? Which version of GROMACS are you using?

There was an API break in the release of GROMACS 2019 and CHAP currently supports only GROMACS 2016 and GROMACS 2018. Fixing this is already on my list, but for now you might have to downgrade your GROMACS version.

winsvern commented 4 years ago

Thank you for getting back to me.

I got it to compile by going back to GROMACS 2016, and installing libopenblas-dev which is needed for later versions of ubuntu. (This is not in the install instructions for CHAP. It was explained in one of the earlier closed issues with CHAP (#6)).

I also found that CHAP would not compile with the suggested flag -DGMX_BUILD_OWN_FFTW=OFF. I had to use a different GROMACS flag -DGMX_FFT_LIBRARY=xxx where xxx=fftpack.

Vern Winston

On Thu, Oct 24, 2019 at 4:07 AM Inniag notifications@github.com wrote:

Could you post the output from cmake? Which version of GROMACS are you using?

There was an API break in the release of GROMACS 2019 and CHAP currently supports only GROMACS 2016 and GROMACS 2018. Fixing this is already on my list, but for now you might have to downgrade your GROMACS version.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/channotation/chap/issues/17?email_source=notifications&email_token=ANLIJIDLFZE25FFGJ7ULNM3QQFXVFA5CNFSM4I4ACVYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECEPOZQ#issuecomment-545847142, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANLIJIAB7ISYUOGHJIO4563QQFXVFANCNFSM4I4ACVYA .

channotation commented 4 years ago

I am glad to hear you got CHAP to work with an older GROMACS version.

Thanks for sharing your recipe for installing CHAP as well. libopenblas-dev was not needed on Ubuntu 14.04, but is indeed required on Ubuntu 16.04 and 18.04 and presumably on later versions as well. I have updated the installation instructions to reflect this.

The -DGMX_BUILD_OWN_FFTW=OFF flag simply tells cmake not to install fftw automatically (the reason why this does not work can be found in the GROMACS docs under the heading "Linking against libgromacs"). GROMACS then still requires a FFT library, either fftpack or a manually installed fftw. If all you want is to try out CHAP, fftpack will be easier to install, but if you intend to perform MD simulations with that install of GROMACS, fftw will likely give you better performance.

I'm closing this issue since the original question seems to be resolved.