Giter Club home page Giter Club logo

chap's Introduction

Build Status

CHAP - The Channel Annotation Package

Please cite G. Klesse, S. Rao, M. S. P. Sansom, and S. J. Tucker "CHAP: A Versatile Tool for the Structural and Functional Annotation of Ion Channel Pores". Journal of Molecular Biology, 2019. if you use CHAP in your academic work.

CHAP is a tool for the functional annotation of ion channel structures written in C++. See the website under www.channotation.org for a full documentation including installation instructions and usage examples. If you have any questions please use the GitHub Issue Tracker.

Prerequisites

Prior to installing CHAP, make sure that you have the following libraries and tools installed:

  1. The CMake tool in version 3.2 or higher. This will typically be available through your system's package manager. For example, on Ubuntu you can install CMake by typing sudo apt-get install cmake. CMake is used to check the availability of libraries and compilers on your system and will ensure that CHAP is installed properly.
  2. A C++ compiler that supports the C++11 standard. A popular choice is the GNU Compiler Collection, which on Ubuntu can be obtained by typing sudo apt-get install gcc.
  3. The Boost C++ libraries, which on Ubuntu can be installed using sudo apt-get install libboost-all-dev. Boost algorithms are used in CHAP to solve some root finding and optimisation problems.
  4. The CBLAS and LAPACKE linear algebra libraries. On Ubuntu, the easiest way to obtain these is by typing sudo apt-get install libblas-dev libatlas-base-dev libopenblas-dev liblapacke-dev. The linear algebra libraries are used in CHAP's spline interpolation.
  5. The libgromacs library of the Gromacs molecular dynamics engine in version 2016 or higher. Comprehensive installation instructions for Gromacs can be found here. Please note that for using Gromacs as a library, the underlying FFTW libray may not be installed automatically, i.e. you need to set -DGMX_BUILD_OWN_FFTW=OFF when running CMake during the Gromacs installation.

CHAP also depends on RapidJSON, but this is included as a header-only library, and on GTest, but this is downloaded and installed automatically by CMake, so you don't need to do anything about either of these (you will however need Internet access when installing CHAP).

Installation

For a minimal install of CHAP create a build directory parallel to the source tree and from there run cmake, make, make check, and make install.

cd chap
mkdir build
cd build
cmake ..
make
make check
sudo make install

CMake will automatically find all dependencies (and inform you of missing ones), make will compile the code (you can use the make -j flag to speed this up on multicore machines), make check runs a suite of unit tests, and make install will place the binary in /usr/local/chap (so you will need sudo rights for this last step). To check if CHAP has been installed properly, you can type

chap -h

which should bring up an online help for using CHAP.

New

If you have ubuntu and you want to run a precompiled chap version with a singularity image, follow these instructions here

chap's People

Contributors

channotation avatar dseiferth avatar inniag avatar philbiggin avatar shanlin-rao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

chap's Issues

Issue with "Make" command

Hi sir,
I am trying to install chap 0.9.1 on my workstation which is the Ubuntu 18.04.5 LTS and the gromacs version is 2020.5.
Following the installation guide, I first touch the same issue here, then follow the command below by changing the "set(CMAKE_CXX_STANDARD 11)" to "set(CMAKE_CXX_STANDARD 14)", I can successfully get rid of this error message.
However, when typing the "make" command again, it shows another error below:

[ 6%] Built target googletest
[ 6%] Building CXX object CMakeFiles/chap.dir/src/analysis-setup/residue_information_provider.cpp.o
In file included from /home/joe/Downloads/chap-version_0_9_1/src/analysis-setup/residue_information_provider.cpp:25:0:
/home/joe/Downloads/chap-version_0_9_1/include/analysis-setup/residue_information_provider.hpp:32:10: fatal error: gromacs/topology/atoms.h: No such file or directory
#include <gromacs/topology/atoms.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
CMakeFiles/chap.dir/build.make:158: recipe for target 'CMakeFiles/chap.dir/src/analysis-setup/residue_information_provider.cpp.o' failed
make[2]: *** [CMakeFiles/chap.dir/src/analysis-setup/residue_information_provider.cpp.o] Error 1
CMakeFiles/Makefile2:355: recipe for target 'CMakeFiles/chap.dir/all' failed
make[1]: *** [CMakeFiles/chap.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

I am curious if that means my gromacs program just lost the file "atoms.h"? And I should reinstall the gromacs?
Or anything else I should do to fix this error.

Sorry for the interruption, and looking forward to any idea/solution.

chap. make command fail

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/pdb_io.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/pdb_io.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.

Pore facing residues not picked up

It seems that I am facing a problem with the way the pore facing residues are selected by chap.
Basically running the program on my protein returns a zero-array for the list of pore facing residues.
To be able to generate a plot like the "radius_profile.png" example, I need to use the pore lining residues data["residueSummary"]["poreFacing"] but then I get most of the residues of my protein.
I tried to change the selection string from "name CA" to "name CB" or include more atoms for example but without success.
This is not much of a problem for my current project but I thought it would be worth mentioning that the way the pore facing residues are identified do not always work.

cmake error

In file included from /home/vrdl/Downloads/chap-master/src/aggregation/boltzmann_energy_calculator.cpp:25:
/home/vrdl/Downloads/chap-master/include/aggregation/boltzmann_energy_calculator.hpp:30:10: fatal error: gromacs/utility/real.h: No such file or directory
30 | #include "gromacs/utility/real.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/chap.dir/build.make:63: CMakeFiles/chap.dir/src/aggregation/boltzmann_energy_calculator.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:559: CMakeFiles/chap.dir/all] Error 2
make: *** [Makefile:141: all] Error 2

Make wobj.py Python3 Compatible

The PyMol script for loading OBJ files is currently not compatible with the Python3 standard. This might cause errors such as this:

PyMOL>run visualise_pathway.py,main
Traceback (most recent call last):
  File "/home/jeffxd/Program/pymol-2.3.2_79/lib/python3.7/site-packages/pymol/parsing.py", line 487, in run
    run_(path, ns_main, ns_main)
  File "/home/jeffxd/Program/pymol-2.3.2_79/lib/python3.7/site-packages/pymol/parsing.py", line 532, in run_file
    execfile(file,global_ns,local_ns)
  File "/home/jeffxd/Program/pymol-2.3.2_79/lib/python3.7/site-packages/pymol/parsing.py", line 527, in execfile
    exec(co, global_ns, local_ns)
  File "visualise_pathway.py", line 89, in <module>
    obj = wobj.import_wobj(args.surface)
  File "/home/jeffxd/Program/chap-version_0_9_1/examples/example-01/test/wobj.py", line 396, in import_wobj
    return obj_importer.read(filename)
  File "/home/jeffxd/Program/chap-version_0_9_1/examples/example-01/test/wobj.py", line 182, in read
    cgo[key] = self.__create_cgo_object(key)
  File "/home/jeffxd/Program/chap-version_0_9_1/examples/example-01/test/wobj.py", line 348, in __create_cgo_object
    vertex_a = self.__vertices[face["vert_idx"][0] - 1]
TypeError: 'map' object is not subscriptable

A fix has already been suggested in issue #11.

Imported target "libgromacs" includes non-existent path

Hi everyone!
I am having some trouble at the cmake step, during the compilation
Here I attach the output. Gromacs 2020 is installed in /usr/local/gromacs
Thanks in advance!
Gera!

`cmake ..

-- The CXX compiler identification is GNU 7.5.0
-- The C compiler identification is GNU 7.5.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Boost version: 1.65.1
-- Found LAPACKE: /usr/include/x86_64-linux-gnu
-- Found GROMACS: 2020.2
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Configuring done
CMake Error at CMakeLists.txt:155 (add_executable):
Target "chap" links to target "OpenMP::OpenMP_CXX" but the target was not
found. Perhaps a find_package() call is missing for an IMPORTED target, or
an ALIAS target is missing?

CMake Error at test/CMakeLists.txt:42 (add_executable):
Target "runAllTests" links to target "OpenMP::OpenMP_CXX" but the target
was not found. Perhaps a find_package() call is missing for an IMPORTED
target, or an ALIAS target is missing?

CMake Error in CMakeLists.txt:
Imported target "libgromacs" includes non-existent path

"/usr/local/gromacs/COMPONENT"

in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:

  • The path was deleted, renamed, or moved to another location.

  • An install or uninstall procedure did not complete successfully.

  • The installation package was faulty and references files it does not
    provide.

CMake Error in CMakeLists.txt:
Imported target "libgromacs" includes non-existent path

"/usr/local/gromacs/COMPONENT"

in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:

  • The path was deleted, renamed, or moved to another location.

  • An install or uninstall procedure did not complete successfully.

  • The installation package was faulty and references files it does not
    provide.

CMake Error in test/CMakeLists.txt:
Imported target "libgromacs" includes non-existent path

"/usr/local/gromacs/COMPONENT"

in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:

  • The path was deleted, renamed, or moved to another location.

  • An install or uninstall procedure did not complete successfully.

  • The installation package was faulty and references files it does not
    provide.

CMake Error in test/CMakeLists.txt:
Imported target "libgromacs" includes non-existent path

"/usr/local/gromacs/COMPONENT"

in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:

  • The path was deleted, renamed, or moved to another location.

  • An install or uninstall procedure did not complete successfully.

  • The installation package was faulty and references files it does not
    provide.

-- Generating done
-- Build files have been written to: /home/geraz/chap-version_0_9_1/build`

/chap_json2csv.py not found

Hi,
Thanks for making that program available.
I tried to convert the json to csv, but it looks like the "/chap_json2csv.py " mentioned in the documentation is not part of the latest version. Is it possible to receive it in some way?

Thanks,
Best,
Nicolas

compiling the CHAP

cmak .. run ok however when i run make i got the following error. i will appreciate any help.

[ 6%] Built target googletest
[ 7%] Building CXX object CMakeFiles/chap.dir/src/aggregation/number_density_calculator.cpp.o
In file included from /usr/local/gromacs/include/gromacs/math/vec.h:111:0,
from /home/afa32/local/chap-version_0_9_1/include/geometry/spline_curve_1D.hpp:33,
from /home/afa32/local/chap-version_0_9_1/include/aggregation/number_density_calculator.hpp:32,
from /home/afa32/local/chap-version_0_9_1/src/aggregation/number_density_calculator.cpp:29:
/usr/local/gromacs/include/gromacs/math/vectypes.h:96:41: error: ‘remove_cv_t’ is not a member of ‘std’
static_assert(!std::is_pointer<std::remove_cv_t>::value,
^~~~~~~~~~~
/usr/local/gromacs/include/gromacs/math/vectypes.h:96:41: note: suggested alternative: ‘remove_cv’
static_assert(!std::is_pointer<std::remove_cv_t>::value,
^~~~~~~~~~~
remove_cv
/usr/local/gromacs/include/gromacs/math/vectypes.h:96:41: error: ‘remove_cv_t’ is not a member of ‘std’
/usr/local/gromacs/include/gromacs/math/vectypes.h:96:41: note: suggested alternative: ‘remove_cv’
static_assert(!std::is_pointer<std::remove_cv_t>::value,
^~~~~~~~~~~
remove_cv
/usr/local/gromacs/include/gromacs/math/vectypes.h:96:53: error: template argument 1 is invalid
static_assert(!std::is_pointer<std::remove_cv_t>::value,
^~~~~~~~~
/usr/local/gromacs/include/gromacs/math/vectypes.h:96:66: error: ‘::value’ has not been declared
static_assert(!std::is_pointer<std::remove_cv_t>::value,
^~~~~
/usr/local/gromacs/include/gromacs/math/vectypes.h:96:66: note: suggested alternative: ‘valloc’
static_assert(!std::is_pointer<std::remove_cv_t>::value,
^~~~~
valloc
In file included from /home/afa32/local/chap-version_0_9_1/include/geometry/spline_curve_1D.hpp:33:0,
from /home/afa32/local/chap-version_0_9_1/include/aggregation/number_density_calculator.hpp:32,
from /home/afa32/local/chap-version_0_9_1/src/aggregation/number_density_calculator.cpp:29:
/usr/local/gromacs/include/gromacs/math/vec.h:630:6: error: ‘remove_const_t’ in namespace ‘std’ does not name a template type
std::remove_const_t norm(T* v)
^~~~~~~~~~~~~~
/usr/local/gromacs/include/gromacs/math/vec.h:635:6: error: ‘remove_const_t’ in namespace ‘std’ does not name a template type
std::remove_const_t norm2(T* v)
^~~~~~~~~~~~~~
CMakeFiles/chap.dir/build.make:107: recipe for target 'CMakeFiles/chap.dir/src/aggregation/number_density_calculator.cpp.o' failed
make[2]: *** [CMakeFiles/chap.dir/src/aggregation/number_density_calculator.cpp.o] Error 1
CMakeFiles/Makefile2:388: recipe for target 'CMakeFiles/chap.dir/all' failed
make[1]: *** [CMakeFiles/chap.dir/all] Error 2
Makefile:159: recipe for target 'all' failed
make: *** [all] Error 2

Regarding protein pore visualization

Hello,

I am Aashish, and I am calculating channel pore profiles using Chap. I have installed Chap using Anaconda.

I have successfully generated the pore output files, but when I visualize the pore in VMD using both the tcl script "visualise_pathway.tcl" and "wobj.tcl", the protein pore profile is always in white color, whereas the pore residue is orange and yellow.

Do I miss something?

I am using the following command:

chap -f protein.xtc -s protein.pdb --sel-pathway 1

Regards,

Aashish

Plot against z-coordinates

Hi CHAP team,

I have 2 CHAP profiles for two aligned ion channels.

The channels are different in height and therefore have different centres of mass but their channels are aligned. when I plot their profiles they are not aligned, presumably because of the difference in them COMs.

I typically plot the radius against data["pathwayProfile"]["s"]. Would it be possible to plot against the z-coordinate? All simulation frames are aligned

Thanks

Standard library logic error (bug): (exception type: St11logic_error) Wavefront OBJ vertex weights must be in unit interval.

Hi,
After a lengthy compilation process, I was able to finish compilation and I tested the program with the given example.
It was giving me the error in the topic with the standard command but when I added "-out-num-points 1000", it worked. Here is the command I issued to run it:
chap -f 4pirtm.xtc -s 4pirtm.tpr -out-filename test -out-num-points 1000

I did the same with my own protein but it gave exactly the same error.
Any suggestion about the possible reason?

reading trajectory

Can CHAP read trajectory files other than gromacs like namd or desmond files?

Enhancement: relocation of the installation directory

Hi Inniag,

As I didn't find a way of relocating CHAP after compilation, I added a basic one that may prove useful for other people. It enables a user to compile CHAP and install it wherever he wants (that's he normal workflow) and then move the install directory to another place.

--- chap-version_0_9_1/include/config/config.hpp.orig	2018-05-02 13:22:36.000000000 +0200
+++ chap-version_0_9_1/include/config/config.hpp	2019-12-09 12:20:15.276330444 +0100
@@ -25,6 +25,7 @@
 #ifndef CONFIG_HPP
 #define CONFIG_HPP
 
+#include <cstdlib>
 #include <string>
 
 #include <gromacs/utility/programcontext.h>
@@ -38,7 +39,12 @@
 extern "C" inline std::string
 chapInstallBase()
 {
-    return std::string(g_CHAP_INSTALL_BASE);
+    const char* e_CHAP_INSTALL_BASE = std::getenv("CHAP_INSTALL_BASE");
+    if ( e_CHAP_INSTALL_BASE != NULL) {
+        return std::string(e_CHAP_INSTALL_BASE);
+    } else {
+        return std::string(g_CHAP_INSTALL_BASE);
+    }
 }
 
 
--- chap-version_0_9_1/src/main.cpp.orig	2018-05-02 13:22:36.000000000 +0200
+++ chap-version_0_9_1/src/main.cpp	2019-12-11 20:41:44.217021435 +0100
@@ -21,6 +21,7 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 
+#include <limits.h>
 
 #include <vector>
 
@@ -33,6 +34,20 @@
 
 int main(int argc, char **argv)
 {
+    char buf[PATH_MAX];
+    readlink("/proc/self/exe", buf, PATH_MAX - 1);
+
+    // CHAP full binary path
+    std::string fbp(buf);
+    // CHAP install base path
+    std::string ibp = fbp.substr(0, fbp.rfind("/bin/"));
+    // GROMACS GMXLIB path
+    std::string ggp = ibp + "/share/gromacs/top";
+
+    // set environement variables
+    setenv("CHAP_INSTALL_BASE", ibp.c_str(), 0);
+    setenv("GMXLIB", ggp.c_str(), 0);
+
     // print front matter:
     FrontMatter::print();
 

Incidentally, I also removed the hardcoded '/chap/' sub-directory because it is more usefull to install a program directly in the prefix provided by the user instead of adding a sub-directory inside that prefix.

--- chap-version_0_9_1/CMakeLists.txt.orig	2018-05-02 13:22:36.000000000 +0200
+++ chap-version_0_9_1/CMakeLists.txt	2019-12-06 21:41:00.975176714 +0100
@@ -175,9 +175,9 @@
 #------------------------------------------------------------------------------
 
 # where to install executable on the system:
-install(TARGETS chap DESTINATION ${CMAKE_INSTALL_PREFIX}/chap/bin)
+install(TARGETS chap DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
 
 # also install data and scripts:
-install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/share DESTINATION ${CMAKE_INSTALL_PREFIX}/chap)
-install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/scripts DESTINATION ${CMAKE_INSTALL_PREFIX}/chap USE_SOURCE_PERMISSIONS)
+install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/share DESTINATION ${CMAKE_INSTALL_PREFIX})
+install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/scripts DESTINATION ${CMAKE_INSTALL_PREFIX} USE_SOURCE_PERMISSIONS)
 
--- chap-version_0_9_1/src/trajectory-analysis/chap_trajectory_analysis.cpp.orig	2018-05-02 13:22:36.000000000 +0200
+++ chap-version_0_9_1/src/trajectory-analysis/chap_trajectory_analysis.cpp	2019-12-09 13:52:36.745685228 +0100
@@ -708,7 +708,7 @@
 
     // base path to location of van-der-Waals radius databases:
     std::string radiusFilePath = chapInstallBase() +
-            std::string("/chap/share/data/vdwradii/");
+            std::string("/share/data/vdwradii/");
 
     // select appropriate database file:
     if( pfVdwRadiusDatabase_ == eVdwRadiusDatabaseHoleAmberuni )
@@ -779,7 +779,7 @@
 
     // base path to location of hydrophobicity databases:
     std::string hydrophobicityFilePath = chapInstallBase() + 
-            std::string("/chap/share/data/hydrophobicity/");
+            std::string("/share/data/hydrophobicity/");
     
     // select appropriate database file:
     if( hydrophobicityDatabase_ == eHydrophobicityDatabaseHessa2005 )
@@ -1921,7 +1921,7 @@
 
     // load colour palettes from JSON file:
     std::string paletteFilePath = chapInstallBase() + 
-            std::string("/chap/share/data/palettes/");
+            std::string("/share/data/palettes/");
     std::string paletteFileName = paletteFilePath + "default.json";
     auto palettes = ColourPaletteProvider::fromJsonFile(paletteFileName);
 

I hope that will prove usefull,
Cheers.

PS: Patch file with all the previous code :
version_0_9_1_relocation.patch.txt

Adding charge tracking

Gianni,

I had the idea to include charge as a function of the pore profile averaged over the trajectory. This will actually be a feature useful for pores with a charge filters. All it would entitle is keeping track of the sum of partial charges in each bin, which is already part of the topology.
Let me know what you think, I would be happy to make these additions.

Best
Jerome

Problem finding libraries when installing

Hello,
I am having some problems installing chap. I have installed the proper libraries and when I do cmake, there is no problem:

-- The CXX compiler identification is GNU 5.5.0
-- The C compiler identification is GNU 5.5.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Boost version: 1.65.1
-- Found LAPACKE: /usr/include/x86_64-linux-gnu  
-- Found GROMACS: 2016.3
CMake Warning at /usr/local/gromacs/share/cmake/gromacs/gromacs-config.cmake:125 (message):
  You are compiling with a different C++ compiler from the one that was used
  to compile GROMACS.  This may lead to linking or runtime problems.  GROMACS
  was compiled with GNU 5.4.0 (/usr/bin/g++-5).
Call Stack (most recent call first):
  CMakeLists.txt:87 (gromacs_check_compiler)


-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Configuring done
-- Generating done
-- Build files have been written to: /data/sperez/bin2/chap-version_0_9_1/build

But when I compile I get:

make[2]: *** No rule to make target '/home/oliverfl/anaconda2/envs/py2/lib/libz.so', needed by 'chap'.  Stop.
CMakeFiles/Makefile2:355: recipe for target 'CMakeFiles/chap.dir/all' failed
make[1]: *** [CMakeFiles/chap.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

This library is an old installation of anaconda that is now removed, but it still finds it. I have checked in my environment variables (using env) and it is not in the environment varibles.
Could you help me?
Thank you very much in advanced,
Best,
Sergio

Chap job crashes due to memory issues

Hi,
I am trying to run chap on a 50000 frames trajectory. However the job dies after about 1000 frames, I believe because it feels up all the RAM available on my computer: I can see all the amount of memory used increases until it uses everything.

I have to run it with -dt 100 to have the calculation end successfully. Which means that I loose a significant portion of my MD.

Is this due to a memory leak or other bug? Or does the program needs to keep everything in memory?
Is there a work around this problem? for example is it possible to force writing to disk instead of keeping in memory?

Many thanks in advance.

Pure bilayer system analysis

Hi

Here I want to make sure that can CHAP be used to analysis the pore produced in a pure bilayer system?

I built a DOPC bilayer system and exerted a electric field to produce a pore in it. Then I try to run CHAP to know how big the pore is, but failed. Following is what I did and got:

chap -f IRE_NPT_0.5.trr -s IRE_NPT_0.5_new.tpr

         The Channel Annotation Package, version 0.9.1

Reading file IRE_NPT_0.5_new.tpr, VERSION 2018.8 (single precision)
Reading file IRE_NPT_0.5_new.tpr, VERSION 2018.8 (single precision)
Available static index groups:
Group 0 "System" (73918 atoms)
Group 1 "Other" (73918 atoms)
Group 2 "DOPC" (35328 atoms)
Group 3 "POT" (95 atoms)
Group 4 "CLA" (95 atoms)
Group 5 "TIP3" (38400 atoms)
Specify a selection for option 'sel-pathway'
(Reference group that defines the permeation pathway (usually 'Protein') ):
(one per line, for status/groups, 'help' for help)
2
Selection '2' parsed
trr version: GMX_trn_file (single precision)
Reading frame 0 time 0.000

Program: chap, version 2018.8
Standard library runtime error (possible bug):
(exception type: St13runtime_error)
No hydrophobicity scale data found for residue DOPC and no fallback specified.

Does it mean I need add the hydrophobicity scale data for DOPC manually?

How can I solve it?

Thanks a lot!

Standard library logic error (bug): (exception type: St12out_of_range) vector::_M_range_check: __n (which is 2) >= this->size() (which is 2)

Hello,

I have tried running CHAP with this command:

chap -f ../../solvated_pores.trr -s ../../solvated_pores.pdb -sel-pathway 1 -sel-solvent 'Water' -pf-cutoff 0 -pf-init-probe-pos 133 112 70

If I set the initial probe position as I do above, it reads all the frames but does not produce a correct output.

trr version: GMX_trn_file (single precision)
Reading frame    1900 time  190.000   
Analyzed 2000 frames, last time 199.900

Forming time averages, 100% completee

-------------------------------------------------------
Program:     chap, version 2016.6

Standard library logic error (bug):
(exception type: St12out_of_range)
vector::_M_range_check: __n (which is 2) >= this->size() (which is 2)

By this, I mean that it produces an output.pdb and output.json but not output.obj or output.mtl. However, if I run the same command but do not specify the initial probe position, it runs properly. I need some way of annotating different ion channels in my system, which I am currently trying to do by starting the probe in different positions. I cannot find much information online about this error, do you know how to fix it? Thanks!

Best regards,
Christian

Cmake error while compiling from the source

CMakeFiles/googletest.dir/build.make:90: recipe for target 'googletest-prefix/src/googletest-stamp/googletest-download' failed
make[2]: *** [googletest-prefix/src/googletest-stamp/googletest-download] Error 1
CMakeFiles/Makefile2:429: recipe for target 'CMakeFiles/googletest.dir/all' failed
make[1]: *** [CMakeFiles/googletest.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

"Number of frames read does not equal numberof frames analyised."

Hello,
Great tool you have built, thank you very much.
I have compiled in a VM, and had it working on some small scale data, but have recently been getting this error;

"Program: chap, version 2018

Standard library runtime error (possible bug):
(exception type: St13runtime_error)
Number of frames read does not equal number of frames analyised.
"

Any ideas what this could mean?
Best,
Jonah

how to set pf-init-probe-pos?

Hi,

I can't figure out how to set the "-pf-init-probe-pos". I tried to get the coordinates from chimera, but I keep getting either:

Reading frames from pdb fileWARNING: all CONECT records are ignored
Reading frame       0 time   -1.000   Segmentation fault

or

Pore radius at initial probe position is infinite. Consider increasing the
maximum pore radius with -pf-max-free-dist or set an appropriate cutoff for
neighbourhood searches explicitly with -pf-cutoff.

Maybe I get the coordinate position system wrong? Can you please let me know how to figure out what values put here?

Thanks,
Best,
Nicolas

Issue using the simg file

Hi, I am trying to use CHAP with singularity image. But it give the following error. I am using singularity image with Mac, uisng SingularityCE vagrant box with ubuntu 18.04, singularity version 3.8.1.

singularity shell --nv chap_singularity_version2.simg
INFO: Could not find any nv files on this host!
WARNING: Could not find any nv libraries on this host!
WARNING: You may need to manually edit /usr/local/etc/singularity/nvliblist.conf
FATAL: could not open image /home/vagrant/chap_singularity_version2.simg: image format not recognized

Issues with python plotting graphs

Hello,

After running chap and selecting water to analyze, I created the free energy profile, hydrophobicity profile, radius profile and solvent number density profile graphs from here:
https://www.channotation.org/docs/plotting_python/

The free energy profile and radius profile graphs look realistic.

  1. The hydrophobicity profile graph is a straight line at 0. There are no dots on the graph to show the hydrophobicity profile. Do you know why the hydrophobicities are not being read?

  2. The solvent number density profile graph for water contains consistent density around ~5-10 nm^-3. However, the pore being analyzed is huge (3-4 nm wide) so I would assume there is a free passage of water through the pore, and that the density should be closer to free water density (~33 nm^-3). Do you know why the solvent density would be lower than free water? Is this realistic?

Thanks for your help!

Using NAMD trajectories?

I have some trajectories produced using NAMD. I have tried to convert these to a form that will work in CHAP and failed. Is there a way to convert these trajectories to a format that is readable by CHAP?

Thank you in advance.

Vern Winston

Patches for fixing a few issues and bugs

Hi Inniag,

When trying to install CHAP on CentOS 7 linux (with GROMACS 2018.8, Intel Compilers 2018.3 and Intel MKL 2018.3) I had to fix a few issues and bugs for making it work correctly.

  1. The first problem was during compilation because the C++11 standard doesn't like implicit "narrowing conversions" (and the Intel compilers fail because of that); an obvious fix is to cast the conversions explicitly, here's the patch:
--- chap-version_0_9_1/src/trajectory-analysis/chap_trajectory_analysis.cpp.orig	2018-05-02 13:22:36.000000000 +0200
+++ chap-version_0_9_1/src/trajectory-analysis/chap_trajectory_analysis.cpp	2019-12-09 13:52:36.745685228 +0100
@@ -84,7 +84,7 @@
     frameStreamData_.setMultipoint(true); 
 
     // default initial probe position and chanell direction:
-    pfInitProbePos_ = {std::nan(""), std::nan(""), std::nan("")};
+    pfInitProbePos_ = {(real)std::nan(""), (real)std::nan(""), (real)std::nan("")};
     pfChanDirVec_ = {0.0, 0.0, 1.0};
 }
 
--- chap-version_0_9_1/test/geometry/ut_bspline_basis_set.cpp.orig	2018-05-02 13:22:36.000000000 +0200
+++ chap-version_0_9_1/test/geometry/ut_bspline_basis_set.cpp	2019-12-06 16:57:13.304949817 +0100
@@ -41,7 +41,7 @@
         std::vector<real> uniqueKnots_ = {-4, -0.5, 0.0, 0.5, 4};
          
         // evaluation points:
-        std::vector<real> evalPoints_ = {-4.0, -2.5, 0.0, 0.5, -1.0, std::sqrt(2.0), 4.0};
+        std::vector<real> evalPoints_ = {-4.0, -2.5, 0.0, 0.5, -1.0, (real)std::sqrt(2.0), 4.0};
 
         // true knot span index:
         std::vector<size_t> knotSpanIdx_ = {0, 0, 2, 3, 0, 3, 3};
--- chap-version_0_9_1/test/statistics/ut_amise_optimal_bandwidth_estimator.cpp.orig	2018-05-02 13:22:36.000000000 +0200
+++ chap-version_0_9_1/test/statistics/ut_amise_optimal_bandwidth_estimator.cpp	2019-12-06 16:59:40.880202641 +0100
@@ -62,7 +62,7 @@
 
     // parameters:
     int numReps = 2;
-    std::vector<real> mean = {-10, 0.0, std::sqrt(2.0)};
+    std::vector<real> mean = {-10, 0.0, (real)std::sqrt(2.0)};
     std::vector<real> numSamples = {250, 500, 750};
     std::vector<real> standardDeviation = {100.0, 1.0, 0.01};
 
--- chap-version_0_9_1/test/statistics/ut_histogram_density_estimator.cpp.orig	2018-05-02 13:22:36.000000000 +0200
+++ chap-version_0_9_1/test/statistics/ut_histogram_density_estimator.cpp	2019-12-06 17:07:42.104516814 +0100
@@ -82,7 +82,7 @@
     HistogramDensityEstimator hde;
 
     // some bin widths to try:
-    std::vector<real> binWidth = {1.0, 0.1, 1e-5, std::sqrt(2.0)};
+    std::vector<real> binWidth = {1.0, 0.1, 1e-5, (real)std::sqrt(2.0)};
 
     // loop over bin widths and check that breaks are correct:
     for(auto it = binWidth.begin(); it != binWidth.end(); it++)
@@ -138,7 +138,7 @@
 
     // some bin widths to try:
     // NOTE: if bin width too small, spline interpolation will fail!
-    std::vector<real> binWidth = {1.0, 0.1, 1e-2, 0.1*std::sqrt(2.0)};
+    std::vector<real> binWidth = {1.0, 0.1, 1e-2, (real)(0.1*std::sqrt(2.0))};
 
     // perform tests for each bin width value:
     for(auto bw : binWidth)
@@ -187,7 +187,7 @@
 
     // some bin widths to try:
     // NOTE: if bin width too small, spline interpolation will fail!
-    std::vector<real> binWidth = {1.0, 0.1, 1e-2, 0.1*std::sqrt(2.0)};
+    std::vector<real> binWidth = {1.0, 0.1, 1e-2, (real)(0.1*std::sqrt(2.0))};
 
     // perform tests for each binwidth value:
     for(auto bw : binWidth)
@@ -238,8 +238,8 @@
 
     // some bin widths to try:
     // NOTE: if bin width too small, spline interpolation will fail!
-    std::vector<real> binWidth = {1.0, 0.1, 1e-2, 0.1*std::sqrt(2.0)};
-    binWidth = {1.0, 0.1, 0.01, 0.1*std::sqrt(2.0)};
+    std::vector<real> binWidth = {1.0, 0.1, 1e-2, (real)(0.1*std::sqrt(2.0))};
+    binWidth = {1.0, 0.1, 0.01, (real)(0.1*std::sqrt(2.0))};
 
     // get data range:
     real dataMin = *std::min_element(testData_.begin(), testData_.end());
@@ -268,7 +268,7 @@
                     0);
 
             // this should always be zero:
-            ASSERT_NEAR(0.0, density, std::sqrt(eps));
+            ASSERT_NEAR(0.0, density, (real)std::sqrt(eps));
         }
  
         // evaluate density below data range:
@@ -283,7 +283,7 @@
                     0);
 
             // this should always be zero:
-            ASSERT_NEAR(0.0, density, std::sqrt(eps));
+            ASSERT_NEAR(0.0, density, (real)std::sqrt(eps));
         }
 
         // evaluate spline within data range:
@@ -317,7 +317,7 @@
             integral += d;
         }
         integral *= evalStep;
-        ASSERT_NEAR(1.0, integral, std::sqrt(eps));
+        ASSERT_NEAR(1.0, integral, (real)std::sqrt(eps));
    }
 }
 
--- chap-version_0_9_1/test/statistics/ut_summary_statistics.cpp.orig	2018-05-02 13:22:36.000000000 +0200
+++ chap-version_0_9_1/test/statistics/ut_summary_statistics.cpp	2019-12-06 17:16:08.457527879 +0100
@@ -44,7 +44,7 @@
         // constructor for creating test data:
         SummaryStatisticsTest()
         {
-            testData_ = {0.3, 1.5, -0.9, std::sqrt(2.0), -5.1};
+            testData_ = {0.3, 1.5, -0.9, (real)std::sqrt(2.0), -5.1};
         }
 
     
--- chap-version_0_9_1/test/statistics/ut_gaussian_density_derivative.cpp.orig	2018-05-02 13:22:36.000000000 +0200
+++ chap-version_0_9_1/test/statistics/ut_gaussian_density_derivative.cpp	2019-12-06 17:24:42.659436050 +0100
@@ -263,9 +263,9 @@
 
                 // check that truncation criterion is met:
                 real b = std::min<real>(gdd.rc_, 
-                                  0.5*(gdd.ri_ + std::sqrt(gdd.ri_*gdd.ri_ + 
+                                  0.5*(gdd.ri_ + (real)std::sqrt(gdd.ri_*gdd.ri_ + 
                                   8.0*trunc*gdd.bw_*gdd.bw_)));
-                real error = std::sqrt(gdd.factorial(gdd.r_))
+                real error = (real)std::sqrt(gdd.factorial(gdd.r_))
                            / gdd.factorial(trunc)
                            * std::pow((gdd.ri_ * b / (gdd.bw_*gdd.bw_)), trunc)
                            * std::exp(-(std::pow(gdd.ri_ - b, 2))
--- chap-version_0_9_1/test/geometry/ut_basis_spline.cpp.orig	2018-05-02 13:22:36.000000000 +0200
+++ chap-version_0_9_1/test/geometry/ut_basis_spline.cpp	2019-12-10 18:55:53.114400365 +0100
@@ -49,7 +49,7 @@
         std::vector<real> knotVector_ = {-4, -0.5, 0.0, 0.5, 4};
          
         // evaluation points:
-        std::vector<real> evalPoints_ = {-4.0, -2.5, 0.0, 0.5, -1.0, std::sqrt(2.0), 4.0};
+        std::vector<real> evalPoints_ = {-4.0, -2.5, 0.0, 0.5, -1.0, (real)std::sqrt(2.0), 4.0};
 };
 
 
  1. The second problem cropped up during the execution of the annotation examples. The JSON "stream_" temporary files were incorrectly generated (empty) thus aborting the job. In the code I found that the file is opened in appending READ mode instead of appending WRITE mode; here's the patch:
--- chap-version_0_9_1/src/io/analysis_data_json_frame_exporter.cpp.orig	2018-05-02 13:22:36.000000000 +0200
+++ chap-version_0_9_1/src/io/analysis_data_json_frame_exporter.cpp	2019-12-10 18:45:48.496459218 +0100
@@ -169,7 +169,7 @@
         const gmx::AnalysisDataFrameHeader& /*frame*/)
 {
     // open output file separately for each frame:
-    file_.open(fileName_.c_str(), std::fstream::app);
+    file_.open(fileName_.c_str(), std::fstream::out | std::fstream::app);
 
     // create buffer writer string writer:
     rapidjson::StringBuffer buffer;
  1. The last problem was more tricky to debug and I'm not very sure about the correctness of my fix. It seams to be a rounding problem during the generation of the Wavefront Object file because the values were very close to zero but negatives and thus didn't pass the sanity check. My fix is to do the scaling with "double" instead of "real"; here's the patch:
--- chap-version_0_9_1/src/io/molecular_path_obj_exporter.cpp.orig	2018-05-02 13:22:36.000000000 +0200
+++ chap-version_0_9_1/src/io/molecular_path_obj_exporter.cpp	2019-12-10 21:33:58.590351428 +0100
@@ -1064,7 +1064,7 @@
         // for sequential colour scale, shift data to positive real range and
         // scale by length of data interval:
         real shift = -minProp;
-        real scale = 1.0/(maxProp - minProp);  
+        double scale = 1.0/(maxProp - minProp);  
        
         // shift and scale the property array:
         std::for_each(prop.begin(), prop.end(), [shift](real &p){p += shift;});
@@ -1075,7 +1075,7 @@
         // for divergent colour scale, scale both positive and negative values
         // such that data lies in [-0.5, 0.5], then shift by 0.5:
         real shift = 0.5;
-        real scale = 1.0/std::max(std::fabs(minProp), std::fabs(maxProp))/2.0; 
+        double scale = 1.0/std::max(std::fabs(minProp), std::fabs(maxProp))/2.0; 
 
         // scale and shift:
         std::for_each(prop.begin(), prop.end(), [scale](real &p){p *= scale;});

That is all for the bug fixes,
Cheers.

PS: patch file with all the previous fixes inside :
version_0_9_1_fixes.patch.txt

error in pore path recognition.

chap -f 7_4.xtc -s new.tpr

             CCCCCC  HH     HH    AAA    PPPPPPPP
            CC    CC HH     HH   AA AA   PP     PP
            CC       HH     HH  AA   AA  PP     PP
            CC       HHHHHHHHH AA     AA PPPPPPPP
            CC       HH     HH AAAAAAAAA PP
            CC    CC HH     HH AA     AA PP
             CCCCCC  HH     HH AA     AA PP

         The Channel Annotation Package, version 0.9.1

Reading file new.tpr, VERSION 2018 (single precision)
Reading file new.tpr, VERSION 2018 (single precision)
Available static index groups:
Group 0 "System" (47651 atoms)
Group 1 "Protein" (3533 atoms)
Group 2 "Protein-H" (1752 atoms)
Group 3 "C-alpha" (236 atoms)
Group 4 "Backbone" (708 atoms)
Group 5 "MainChain" (944 atoms)
Group 6 "MainChain+Cb" (1148 atoms)
Group 7 "MainChain+H" (1169 atoms)
Group 8 "SideChain" (2364 atoms)
Group 9 "SideChain-H" (808 atoms)
Group 10 "Prot-Masses" (3533 atoms)
Group 11 "non-Protein" (44118 atoms)
Group 12 "Other" (44118 atoms)
Group 13 "POPC" (17420 atoms)
Group 14 "POT" (23 atoms)
Group 15 "CLA" (26 atoms)
Group 16 "TIP3" (26649 atoms)
Specify a selection for option 'sel-pathway'
(Reference group that defines the permeation pathway (usually 'Protein') ):
(one per line, for status/groups, 'help' for help)

1
Selection '1' parsed

Reading frame 500 time 5000.000

Program: chap, version 2018

Standard library runtime error (possible bug):
(exception type: St13runtime_error)
Pore radius at initial probe position is infinite. Consider increasing the
maximum pore radius with -pf-max-free-dist or set an appropriate cutoff for
neighbourhood searches explicitly with -pf-cutoff.

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

Thank you for using CHAP - The Channel Annotation Package!

Error while running heuristic_prediction.R

Hello,

I am running heuristic prediction for the example/example-03/ for the 6mhs.pdb. When I run ./heuristic_prediction.R I get the following error:

divide <- ggplot_build(mapped)[[1]][[1]]
Warning message:
Computation failed in stat_contour():
Number of x coordinates must match number of columns in density matrix.
matrix <- matrix(c(divide$x, divide$y), ncol = 2)
Error in matrix(c(divide$x, divide$y), ncol = 2) :
'data' must be of a vector type, was 'NULL'
Execution halted

I am not familiar with R and hence I will be grateful if you could help me here.

Thanks.
Koushik

Issue with Make chap-version_0_9_1

make
Scanning dependencies of target googletest
[ 0%] Creating directories for 'googletest'
[ 1%] Performing download step (download, verify and extract) for 'googletest'
-- Downloading...
dst='/home/bd422/chap-version_0_9_1/build/googletest-prefix/src/release-1.7.0.zip'
timeout='none'
-- Using src='https://github.com/google/googletest/archive/release-1.7.0.zip'
-- Retrying...
-- Using src='https://github.com/google/googletest/archive/release-1.7.0.zip'
-- Retry after 5 seconds (attempt #2) ...
-- Using src='https://github.com/google/googletest/archive/release-1.7.0.zip'
-- Retry after 5 seconds (attempt #3) ...
-- Using src='https://github.com/google/googletest/archive/release-1.7.0.zip'
-- Retry after 15 seconds (attempt #4) ...
-- Using src='https://github.com/google/googletest/archive/release-1.7.0.zip'
-- Retry after 60 seconds (attempt #5) ...
-- Using src='https://github.com/google/googletest/archive/release-1.7.0.zip'
CMake Error at googletest-stamp/download-googletest.cmake:159 (message):
Each download failed!

error: downloading 'https://github.com/google/googletest/archive/release-1.7.0.zip' failed
     status_code: 1
     status_string: "Unsupported protocol"
     log:
     --- LOG BEGIN ---
     Protocol "https" not supported or disabled in libcurl

Closing connection -1

     --- LOG END ---
     error: downloading 'https://github.com/google/googletest/archive/release-1.7.0.zip' failed
     status_code: 1
     status_string: "Unsupported protocol"
     log:
     --- LOG BEGIN ---
     Protocol "https" not supported or disabled in libcurl

Closing connection -1

     --- LOG END ---
     error: downloading 'https://github.com/google/googletest/archive/release-1.7.0.zip' failed
     status_code: 1
     status_string: "Unsupported protocol"
     log:
     --- LOG BEGIN ---
     Protocol "https" not supported or disabled in libcurl

Closing connection -1

     --- LOG END ---
     error: downloading 'https://github.com/google/googletest/archive/release-1.7.0.zip' failed
     status_code: 1
     status_string: "Unsupported protocol"
     log:
     --- LOG BEGIN ---
     Protocol "https" not supported or disabled in libcurl

Closing connection -1

     --- LOG END ---
     error: downloading 'https://github.com/google/googletest/archive/release-1.7.0.zip' failed
     status_code: 1
     status_string: "Unsupported protocol"
     log:
     --- LOG BEGIN ---
     Protocol "https" not supported or disabled in libcurl

Closing connection -1

     --- LOG END ---
     error: downloading 'https://github.com/google/googletest/archive/release-1.7.0.zip' failed
     status_code: 1
     status_string: "Unsupported protocol"
     log:
     --- LOG BEGIN ---
     Protocol "https" not supported or disabled in libcurl

Closing connection -1

     --- LOG END ---

CMakeFiles/googletest.dir/build.make:90: recipe for target 'googletest-prefix/src/googletest-stamp/googletest-download' failed
make[2]: *** [googletest-prefix/src/googletest-stamp/googletest-download] Error 1
CMakeFiles/Makefile2:404: recipe for target 'CMakeFiles/googletest.dir/all' failed
make[1]: *** [CMakeFiles/googletest.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

Errors when compiling CHAP

Hi,
I have been trying to compile CHAP on our local cluster but ran into a number of issues.
First the I encountered the same problem as described in #5
However, the suggested fix didn't work (Adding include_directories(${LAPACKE_INCLUDE_DIRS}) or target_include_directories(chap PUBLIC ${LAPACKE_INCLUDE_DIRS}) to CMakeLists.txt). Instead I had to add the explicit path to CMakeLists.txt (I am mainly mentioning it in case others run into the same problem).

I have however further problems during compuilation. With an intel compiler (which was used to compile Gromacs), I get the following error:

[ 42%] Building CXX object CMakeFiles/chap.dir/src/statistics/weighted_kernel_density_estimator.cpp.o
[ 43%] Building CXX object CMakeFiles/chap.dir/src/trajectory-analysis/chap_trajectory_analysis.cpp.o
/mnt/storage/home/el14718/el14718/SOFTWARE/chap-version_0_9_1/src/trajectory-analysis/chap_trajectory_analysis.cpp(87): error #3291: invalid narrowing conversion from "double" to "float"
      pfInitProbePos_ = {std::nan(""), std::nan(""), std::nan("")};
                         ^

/mnt/storage/home/el14718/el14718/SOFTWARE/chap-version_0_9_1/src/trajectory-analysis/chap_trajectory_analysis.cpp(87): error #3291: invalid narrowing conversion from "double" to "float"
      pfInitProbePos_ = {std::nan(""), std::nan(""), std::nan("")};
                                       ^

/mnt/storage/home/el14718/el14718/SOFTWARE/chap-version_0_9_1/src/trajectory-analysis/chap_trajectory_analysis.cpp(87): error #3291: invalid narrowing conversion from "double" to "float"
      pfInitProbePos_ = {std::nan(""), std::nan(""), std::nan("")};
                                                     ^

/mnt/storage/home/el14718/el14718/SOFTWARE/chap-version_0_9_1/src/trajectory-analysis/chap_trajectory_analysis.cpp(1633): warning #192: unrecognized character escape sequence
                   <<"\% complete"
                      ^

/mnt/storage/home/el14718/el14718/SOFTWARE/chap-version_0_9_1/src/trajectory-analysis/chap_trajectory_analysis.cpp(1775): warning #192: unrecognized character escape sequence
               <<"\% complete"
                  ^

compilation aborted for /mnt/storage/home/el14718/el14718/SOFTWARE/chap-version_0_9_1/src/trajectory-analysis/chap_trajectory_analysis.cpp (code 2)
make[2]: *** [CMakeFiles/chap.dir/src/trajectory-analysis/chap_trajectory_analysis.cpp.o] Error 2
make[1]: *** [CMakeFiles/chap.dir/all] Error 2
make: *** [all] Error 2

So I tried to switch to gcc, but then I got this error:

[ 44%] Building CXX object CMakeFiles/chap.dir/config/config.cpp.o
[ 45%] Linking CXX executable chap
c++: error: unrecognized command line option '-qopenmp'; did you mean '-fopenmp'?
make[2]: *** [chap] Error 1
make[1]: *** [CMakeFiles/chap.dir/all] Error 2
make: *** [all] Error 2

I thought it could be a problem of gcc version (I used GCC 7.2.0) so I tried with the same GCC version (5.4.0) as the one used on my desktop for with the installation was a success (Ubuntu desktop with all prerequisite libraries installed with apt-get).

Do you have any ideas on how to fix it?
I am happy to replace -qopenmp with -fopenmp but I don't know where to change it.

Many thanks

Boost Library and gromacs 2018

Hi,

I am trying to compile CHAP but keep running into one issue after another.

this is the one I am getting with gcc 6.3 and gmx 2019.3

chap/src/analysis-setup/residue_information_provider.cpp:25:0:
chap/include/analysis-setup/residue_information_provider.hpp:67:42: error: ‘TopologyInformation’ in namespace ‘gmx’ does not name a type
         void nameFromTopology(const gmx::TopologyInformation &top); 

I checked gromacs source there is a TopologyIformation class in there, I am assuming the version change should have changed something here.

compile well with gromacs 2018.6. So that is a version change issue for sure.

external BOOST library not properly picked up

I noticed an issue when building with a BOOST library that is installed in a non-standard location. I can get cmake to pick it up by setting -DBOOST_ROOT=/path/to/boost, but when I execute make it fails at some point because the compiler doesn't find the header files:

$ cmake .. -DBOOST_ROOT=$BOOST_HOME
-- The CXX compiler identification is GNU 7.3.0
-- The C compiler identification is GNU 7.3.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Boost version: 1.68.0
-- Found LAPACKE: /usr/include/x86_64-linux-gnu  
-- Found GROMACS: 2018.4
CMake Warning at /opt/tcbsys/gromacs/2018.4/AVX2_256/share/cmake/gromacs/gromacs-config.cmake:132 (message):
  You are compiling with a different C++ compiler from the one that was used
  to compile GROMACS.  This may lead to linking or runtime problems.  GROMACS
  was compiled with GNU 5.4.0 (/usr/bin/g++-5).
Call Stack (most recent call first):
  CMakeLists.txt:87 (gromacs_check_compiler)


-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/src/chap-version_0_9_1/build

$ make
Scanning dependencies of target googletest
[  0%] Creating directories for 'googletest'
[  1%] Performing download step (download, verify and extract) for 'googletest'
-- Downloading...
   dst='/tmp/src/chap-version_0_9_1/build/googletest-prefix/src/release-1.7.0.zip'
   timeout='none'
-- Using src='https://github.com/google/googletest/archive/release-1.7.0.zip'
-- [download 0% complete]
[...]
-- [download 100% complete]
-- Downloading... done
-- extracting...
     src='/tmp/src/chap-version_0_9_1/build/googletest-prefix/src/release-1.7.0.zip'
     dst='/tmp/src/chap-version_0_9_1/build/googletest-prefix/src/googletest'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[  2%] No patch step for 'googletest'
[  3%] No update step for 'googletest'
[  3%] Performing configure step for 'googletest'
-- The CXX compiler identification is GNU 7.3.0
-- The C compiler identification is GNU 7.3.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found PythonInterp: /usr/bin/python (found version "2.7.15") 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/src/chap-version_0_9_1/build/googletest-prefix/src/googletest-build
[  4%] Performing build step for 'googletest'
Scanning dependencies of target gtest
[ 25%] Building CXX object CMakeFiles/gtest.dir/src/gtest-all.cc.o
[ 50%] Linking CXX static library libgtest.a
[ 50%] Built target gtest
Scanning dependencies of target gtest_main
[ 75%] Building CXX object CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
[100%] Linking CXX static library libgtest_main.a
[100%] Built target gtest_main
[  5%] No install step for 'googletest'
[  6%] Completed 'googletest'
[  6%] Built target googletest
Scanning dependencies of target chap
[  6%] Building CXX object CMakeFiles/chap.dir/src/aggregation/boltzmann_energy_calculator.cpp.o
[  7%] Building CXX object CMakeFiles/chap.dir/src/aggregation/multiscalar_time_series.cpp.o
[  8%] Building CXX object CMakeFiles/chap.dir/src/aggregation/number_density_calculator.cpp.o
[  9%] Building CXX object CMakeFiles/chap.dir/src/aggregation/scalar_time_series.cpp.o
[  9%] Building CXX object CMakeFiles/chap.dir/src/analysis-setup/residue_information_provider.cpp.o
[ 10%] Building CXX object CMakeFiles/chap.dir/src/config/back_matter.cpp.o
[ 11%] Building CXX object CMakeFiles/chap.dir/src/config/front_matter.cpp.o
[ 12%] Building CXX object CMakeFiles/chap.dir/src/geometry/abstract_cubic_spline_interp.cpp.o
[ 12%] Building CXX object CMakeFiles/chap.dir/src/geometry/abstract_spline_curve.cpp.o
[ 13%] Building CXX object CMakeFiles/chap.dir/src/geometry/basis_spline.cpp.o
[ 14%] Building CXX object CMakeFiles/chap.dir/src/geometry/bspline_basis_set.cpp.o
[ 15%] Building CXX object CMakeFiles/chap.dir/src/geometry/cubic_spline_interp_1D.cpp.o
[ 16%] Building CXX object CMakeFiles/chap.dir/src/geometry/cubic_spline_interp_3D.cpp.o
[ 16%] Building CXX object CMakeFiles/chap.dir/src/geometry/linear_spline_interp_1D.cpp.o
[ 17%] Building CXX object CMakeFiles/chap.dir/src/geometry/spline_curve_1D.cpp.o
/tmp/src/chap-version_0_9_1/src/geometry/spline_curve_1D.cpp:28:10: fatal error: boost/math/tools/minima.hpp: No such file or directory
 #include <boost/math/tools/minima.hpp>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
CMakeFiles/chap.dir/build.make:398: recipe for target 'CMakeFiles/chap.dir/src/geometry/spline_curve_1D.cpp.o' failed
make[2]: *** [CMakeFiles/chap.dir/src/geometry/spline_curve_1D.cpp.o] Error 1
CMakeFiles/Makefile2:355: recipe for target 'CMakeFiles/chap.dir/all' failed
make[1]: *** [CMakeFiles/chap.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

Running make in verbose mode shows that the compiler command line is missing the flag -I/path/to/boost/include:

$ make VERBOSE=1
/usr/bin/cmake -H/tmp/src/chap-version_0_9_1 -B/tmp/src/chap-version_0_9_1/build --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /tmp/src/chap-version_0_9_1/build/CMakeFiles /tmp/src/chap-version_0_9_1/build/CMakeFiles/progress.marks
make -f CMakeFiles/Makefile2 all
make[1]: Entering directory '/tmp/src/chap-version_0_9_1/build'
make -f CMakeFiles/googletest.dir/build.make CMakeFiles/googletest.dir/depend
make[2]: Entering directory '/tmp/src/chap-version_0_9_1/build'
cd /tmp/src/chap-version_0_9_1/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /tmp/src/chap-version_0_9_1 /tmp/src/chap-version_0_9_1 /tmp/src/chap-version_0_9_1/build /tmp/src/chap-version_0_9_1/build /tmp/src/chap-version_0_9_1/build/CMakeFiles/googletest.dir/DependInfo.cmake --color=
make[2]: Leaving directory '/tmp/src/chap-version_0_9_1/build'
make -f CMakeFiles/googletest.dir/build.make CMakeFiles/googletest.dir/build
make[2]: Entering directory '/tmp/src/chap-version_0_9_1/build'
make[2]: Nothing to be done for 'CMakeFiles/googletest.dir/build'.
make[2]: Leaving directory '/tmp/src/chap-version_0_9_1/build'
[  6%] Built target googletest
make -f CMakeFiles/chap.dir/build.make CMakeFiles/chap.dir/depend
make[2]: Entering directory '/tmp/src/chap-version_0_9_1/build'
cd /tmp/src/chap-version_0_9_1/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /tmp/src/chap-version_0_9_1 /tmp/src/chap-version_0_9_1 /tmp/src/chap-version_0_9_1/build /tmp/src/chap-version_0_9_1/build /tmp/src/chap-version_0_9_1/build/CMakeFiles/chap.dir/DependInfo.cmake --color=
make[2]: Leaving directory '/tmp/src/chap-version_0_9_1/build'
make -f CMakeFiles/chap.dir/build.make CMakeFiles/chap.dir/build
make[2]: Entering directory '/tmp/src/chap-version_0_9_1/build'
[  7%] Building CXX object CMakeFiles/chap.dir/src/geometry/spline_curve_1D.cpp.o
/usr/bin/c++  -DGMX_DOUBLE=0 -DRAPIDJSON_HAS_STDSTRING -I/opt/tcbsys/gromacs/2018.4/AVX2_256/include -I/tmp/src/chap-version_0_9_1/build/googletest-prefix/src/googletest/include -I/tmp/src/chap-version_0_9_1/build -I/tmp/src/chap-version_0_9_1/include  -O3 -DNDEBUG   -std=c++11 -o CMakeFiles/chap.dir/src/geometry/spline_curve_1D.cpp.o -c /tmp/src/chap-version_0_9_1/src/geometry/spline_curve_1D.cpp
/tmp/src/chap-version_0_9_1/src/geometry/spline_curve_1D.cpp:28:10: fatal error: boost/math/tools/minima.hpp: No such file or directory
 #include <boost/math/tools/minima.hpp>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
CMakeFiles/chap.dir/build.make:398: recipe for target 'CMakeFiles/chap.dir/src/geometry/spline_curve_1D.cpp.o' failed
make[2]: *** [CMakeFiles/chap.dir/src/geometry/spline_curve_1D.cpp.o] Error 1
make[2]: Leaving directory '/tmp/src/chap-version_0_9_1/build'
CMakeFiles/Makefile2:355: recipe for target 'CMakeFiles/chap.dir/all' failed
make[1]: *** [CMakeFiles/chap.dir/all] Error 2
make[1]: Leaving directory '/tmp/src/chap-version_0_9_1/build'
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

CMakeCache.txt is attached
CMakeCache.txt

Error during installation of chap - possibly related to LAPACK

Hello,

I am trying to install chap on an Ubuntu 16.04 computer. I have a fresh build of Gromacs 2018 and installed the dependancies following the instruction provided in the chap documentation, namely: sudo apt-get install libblas-dev liblapacke-dev libatlas-base-dev

Here is the result of cmake:

-- The CXX compiler identification is GNU 5.4.0
-- The C compiler identification is GNU 5.4.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Boost version: 1.58.0
-- Found LAPACKE: /usr/include
-- Found GROMACS: 2018.7
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Configuring done
-- Generating done
-- Build files have been written to: /home/el14718/Software/chap-version_0_9_1/build

And here is the error following make:

[...]
[ 42%] Building CXX object CMakeFiles/chap.dir/src/statistics/weighted_kernel_density_estimator.cpp.o
[ 43%] Building CXX object CMakeFiles/chap.dir/src/statistics/kernel_density_estimator.cpp.o
[ 43%] Building CXX object CMakeFiles/chap.dir/config/version.cpp.o
[ 44%] Building CXX object CMakeFiles/chap.dir/config/config.cpp.o
[ 45%] Linking CXX executable chap
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `sggev3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `sbdsvdx_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `cgesvj_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `dgetrf2_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `dpotrf2_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `sggsvp3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `zgges3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `cgesvdx_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `zggev3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `dgesvdx_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `cggsvp3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `zggsvp3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `sgges3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `sgesvdx_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `zgesvdx_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `dbdsvdx_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `cgghd3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `dggsvp3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `cggev3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `spotrf2_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `sggsvd3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `zpotrf2_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `dgghd3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `sgetrf2_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `zgghd3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `cgejsv_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `dggsvd3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `cpotrf2_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `cggsvd3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `dggev3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `zgejsv_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `sgghd3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `zggsvd3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `cgetrf2_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `cgges3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `zgesvj_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `dgges3_'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/liblapacke.so: undefined reference to `zgetrf2_'
collect2: error: ld returned 1 exit status
CMakeFiles/chap.dir/build.make:1374: recipe for target 'chap' failed
make[2]: *** [chap] 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

Do you have any idea what the problem could be? Do you know how it could be fixed?
Is it a problem relating the the latest version of Lapack?

Many thanks in advance for your help!

Eric

Errors related to make command, boost libraries and std cpp libraries while compiling CHAP

I'm trying to install CHAP version_0_9_1 and during the make command, I get this error:

(python3.11) bburendei@solaire:~/apps/CHAP/chap-version_0_9_1/build$ make
[  6%] Built target googletest
Consolidate compiler generated dependencies of target chap
[  7%] Building CXX object CMakeFiles/chap.dir/src/aggregation/multiscalar_time_series.cpp.o
/home/bburendei/apps/CHAP/chap-version_0_9_1/src/aggregation/multiscalar_time_series.cpp: In member function ‘void MultiscalarTimeSeries::addScalarTimeSeries(const ScalarTimeSeries&)’:
/home/bburendei/apps/CHAP/chap-version_0_9_1/src/aggregation/multiscalar_time_series.cpp:56:28: error: ‘logic_error’ is not a member of ‘std’
   56 |                 throw std::logic_error("Time stamps of new time series do "
      |                            ^~~~~~~~~~~
/home/bburendei/apps/CHAP/chap-version_0_9_1/src/aggregation/multiscalar_time_series.cpp:72:24: error: ‘logic_error’ is not a member of ‘std’
   72 |             throw std::logic_error("Multiscalar time series can not accept "
      |                        ^~~~~~~~~~~
make[2]: *** [CMakeFiles/chap.dir/build.make:90: CMakeFiles/chap.dir/src/aggregation/multiscalar_time_series.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:391: CMakeFiles/chap.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

I managed to install GROMACS 2018 with the FFTPACK library
I can't find previous issues detailing this, so I'm a bit lost as to what I should do to fix this.
Thanks in advance.

Batuujin

pymol visualization issue

I'm trying to visualize the tunnel by using the visualise_pathway.py script that comes with chap. However, I encounter the following error message:

(work) zruan@zruan:~/software/chap/chap/examples/example-03$ pymol
 PyMOL(TM) 2.3.4 - Incentive Product
 Copyright (C) Schrodinger, LLC
 
 This Executable Build integrates and extends Open-Source PyMOL.
 Detected OpenGL version 4.6. Shaders available.
 Detected GLSL version 4.60.
 OpenGL graphics engine:
  GL_VENDOR:   NVIDIA Corporation
  GL_RENDERER: NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2
  GL_VERSION:  4.6.0 NVIDIA 510.73.05
 License Expiry date: 19-jul-2023
 Detected 24 CPU cores.  Enabled multithreaded rendering.
 parser: no matching files.
PyMOL>run visualise_pathway.py
Traceback (most recent call last):
  File "/home/zruan/software/pymol/lib/python3.7/site-packages/pymol/parsing.py", line 483, in run
    run_(path, ns_pymol, ns_pymol)
  File "/home/zruan/software/pymol/lib/python3.7/site-packages/pymol/parsing.py", line 532, in run_file
    execfile(file,global_ns,local_ns)
  File "/home/zruan/software/pymol/lib/python3.7/site-packages/pymol/parsing.py", line 527, in execfile
    exec(co, global_ns, local_ns)
  File "visualise_pathway.py", line 89, in <module>
    obj = wobj.import_wobj(args.surface)
  File "/home/zruan/software/chap/chap/examples/example-03/wobj.py", line 396, in import_wobj
    return obj_importer.read(filename)
  File "/home/zruan/software/chap/chap/examples/example-03/wobj.py", line 182, in read
    cgo[key] = self.__create_cgo_object(key)
  File "/home/zruan/software/chap/chap/examples/example-03/wobj.py", line 348, in __create_cgo_object
    vertex_a = self.__vertices[face["vert_idx"][0] - 1]
TypeError: 'map' object is not subscriptable

cmake / LAPACK problems 0.9.1 release

When building 0.9.1 with LAPACK installed in a non-standard location, the link flags for LAPACKE_LIBRARIES don't get correctly propagated to linking the chap binary, resulting in link errors.

Patching this results in additional link errors for libgfortran (at least with gcc 4.9.3 on CentOS 6), suggesting that there may be glitches in the FORTRANSUPPORTLIB section of cmake/Modules/FindLAPACKE/FindLAPACKE.cmake

CMAKE ERROR when installing Chap (Version 0.9.1) on Ubuntu 20.04.2 LTS

Hi everyone,
I am trying to install Chap (Version 0.9.1) on my Computer (Ubuntu 20.04.2 LTS). When I run make, I get the following error:

####################################################################################################
[ 8%] Building CXX object CMakeFiles/chap.dir/src/aggregation/number_density_calculator.cpp.o
In file included from /usr/local/gromacs/include/gromacs/math/vec.h:111,
from /home/theres/THERES_projects/tools/chap-version_0_9_1/include/geometry/spline_curve_1D.hpp:33,
from /home/theres/THERES_projects/tools/chap-version_0_9_1/include/aggregation/number_density_calculator.hpp:32,
from /home/theres/THERES_projects/tools/chap-version_0_9_1/src/aggregation/number_density_calculator.cpp:29:
/usr/local/gromacs/include/gromacs/math/vectypes.h:96:41: error: ‘remove_cv_t’ is not a member of ‘std’
static_assert(!std::is_pointer<std::remove_cv_t>::value,
^~~~~~~~~~~
/usr/local/gromacs/include/gromacs/math/vectypes.h:96:41: note: suggested alternative: ‘remove_cv’
static_assert(!std::is_pointer<std::remove_cv_t>::value,
^~~~~~~~~~~
remove_cv
/usr/local/gromacs/include/gromacs/math/vectypes.h:96:41: error: ‘remove_cv_t’ is not a member of ‘std’
/usr/local/gromacs/include/gromacs/math/vectypes.h:96:41: note: suggested alternative: ‘remove_cv’
static_assert(!std::is_pointer<std::remove_cv_t>::value,
^~~~~~~~~~~
remove_cv
/usr/local/gromacs/include/gromacs/math/vectypes.h:96:53: error: template argument 1 is invalid
static_assert(!std::is_pointer<std::remove_cv_t>::value,
^~~~~~~~~
/usr/local/gromacs/include/gromacs/math/vectypes.h:96:66: error: ‘::value’ has not been declared
static_assert(!std::is_pointer<std::remove_cv_t>::value,
^~~~~
/usr/local/gromacs/include/gromacs/math/vectypes.h:96:66: note: suggested alternative: ‘valloc’
static_assert(!std::is_pointer<std::remove_cv_t>::value,
^~~~~
valloc
In file included from /home/theres/THERES_projects/tools/chap-version_0_9_1/include/geometry/spline_curve_1D.hpp:33,
from /home/theres/THERES_projects/tools/chap-version_0_9_1/include/aggregation/number_density_calculator.hpp:32,
from /home/theres/THERES_projects/tools/chap-version_0_9_1/src/aggregation/number_density_calculator.cpp:29:
/usr/local/gromacs/include/gromacs/math/vec.h:630:6: error: ‘remove_const_t’ in namespace ‘std’ does not name a template type
std::remove_const_t norm(T* v)
^~~~~~~~~~~~~~
/usr/local/gromacs/include/gromacs/math/vec.h:630:1: note: suggested alternative: ‘remove_const’
std::remove_const_t norm(T* v)
^~~
remove_const
/usr/local/gromacs/include/gromacs/math/vec.h:635:6: error: ‘remove_const_t’ in namespace ‘std’ does not name a template type
std::remove_const_t norm2(T* v)
^~~~~~~~~~~~~~
/usr/local/gromacs/include/gromacs/math/vec.h:635:1: note: suggested alternative: ‘remove_const’
std::remove_const_t norm2(T* v)
^~~
remove_const
make[2]: *** [CMakeFiles/chap.dir/build.make:104: CMakeFiles/chap.dir/src/aggregation/number_density_calculator.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:547: CMakeFiles/chap.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

######################################################################################################
######################################################################################################

I have installed GROMACS 2020.6 with an external fftw library.
In case you need the cmake command I ran for GMX installation:
sudo cmake .. -DGMX_BUILD_OWN_FFTW=OFF -DREGRESSIONTEST_DOWNLOAD=ON -DGMX_GPU=on -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.2/ -DGMX_FFT_LIBRARY=fftw3 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=/usr/bin/gcc-8 -DBUILD_SHARED_LIBS=OFF

Other information you might need:

  • cmake version 3.20.0-rc5.
  • cuda version 11.2
  • Nvidia version 450.102.04

######################################################################################################

I am not sure what I am doing wrong and I would be very grateful for any tips or tricks how to deal with this this error. Thank you very much in advance!

How to use CHAP on multiple ion channels

Hello,

I am wanting to use CHAP with my system, which contains several putative ion channels. What is the best way to go about this? From reading the documentation, I can think of a few ideas:

  1. Run CHAP multiple times, with each time setting the -pf-init-probe-pos to be over each ion channel
  2. Slice my trajectories so that each one just contains one ion channel
  3. Tell CHAP that there are multiple ion channels in the system (unclear exactly how to do this, would need syntax examples)

What would you recommend? This is a huge system, is why I'm asking for your recommendations instead of trying each of these. Thanks in advance!

Best,
Christian

conda package request

Will it be possible to have conda package so it is easier to install all dependencies?

I am having this error:

Unable to find the Boost header files. Please set BOOST_ROOT to the root
directory containing Boost or BOOST_INCLUDEDIR to the directory containing
Boost's headers.
Call Stack (most recent call first):
CMakeLists.txt:60 (find_package)

Could NOT find LAPACKE (missing: LAPACKE_CBLAS_INCLUDE_DIR
LAPACKE_LAPACKE_INCLUDE_DIR)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.