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

Boost Library and gromacs 2018 #11

Open irudayaf opened 5 years ago

irudayaf commented 5 years ago

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.

Inniag commented 5 years ago

Thanks for reporting this issue. What you see is indeed an API break in libgomacs between versions 2018 and 2019. I will hopefully be able to fix this soon, but for the time being a workaround would be to use Gromacs 2018.X (or 2016.X). For those versions of Gromacs I have tests that ensure they are compatible with CHAP.

Could you elaborate on what issue you are seeing with the boost library?

irudayaf commented 5 years ago

Hi Gianni,

Yes switching to 2018.6 solved the problem. The boost library issue was associated with clang++ already reported earlier (related to narrowing).

On a side node the current wobj.py throws error in python3, due to map subscription. An easy fix is to cast all maps as list at every instance. self.__materials[self.__crnt_material]["Ka"] = list(map(float, split_line[1:4])) self.__materials[self.__crnt_material]["Kd"] = list(map(float, split_line[1:4])) self.__materials[self.__crnt_material]["Ks"] = list(map(float, split_line[1:4])) self.__vertices.append(list(map(float, split_line[1:4]))) self.__normals.append(list(map(float, split_line[1:4]))) all_indices = list(map(lambda x: x.split("/"), split_line[1:4])) face["vert_idx"] = list(map(int, list(map(lambda x: x[0], all_indices)))) face["norm_idx"] = list(map(int, list(map(lambda x: x[2], all_indices))))

Inniag commented 5 years ago

OK, I'm glad we narrowed it down to Gromacs version then. I'm currently finishing up another project, but will attempt to properly fix this as soon as possible.

For the Boost/Clang issue people can take a look at ticket #2.

The problem with wobj.py is a good catch. I had so far only used Python2 based PyMOL. I created a separate issue for this (#12). Would this be something you'd feel comfortable creating a pull request for?

irudayaf commented 5 years ago

Hi Gianni,

Sure I can create a pull request. Happy to help, and thanks for putting a comprehensive analysis tool.

Best Jerome

Inniag commented 5 years ago

That's great, your help is much appreciated!

I am rather busy this week, so might not get to look at anything in detail before the weekend.