isayev / ASE_ANI

ANI-1 neural net potential with python interface (ASE)
MIT License
220 stars 56 forks source link

Libraries for OpenMM-ANI #31

Open virginia2019 opened 5 years ago

virginia2019 commented 5 years ago

Hi there,

Thank you for sharing this code! I'm trying to install the OpenMM plugin from chemalot (https://github.com/chemalot/openmm-ani), and it seems that some libraries are required from ASE_ANI. I think the missing library is neurochemcpp_iface.h, which is in your repository for CentOS versions. Do you also have a version for ubuntu with cuda 9.2 and python 3.6? Thanks a ton! -Virginia

ps The ASE_ANI code works very well for me, so this isn't actually an ASE_ANI issue.

dlukauskis commented 4 years ago

I have the same issue here, and after copying libcppNeuroChem.so from CentOS version, the compilation fails during the tests:

Scanning dependencies of target CopyTestFiles
[  5%] CMake-copying file /home/dom/Software/ANI/openmm-ani/tests/central.pb to /home/dom/Software/ANI/openmm-ani/build/tests/central.pb
[ 11%] CMake-copying file /home/dom/Software/ANI/openmm-ani/tests/periodic.pb to /home/dom/Software/ANI/openmm-ani/build/tests/periodic.pb
[ 17%] CMake-copying file /home/dom/Software/ANI/openmm-ani/tests/testAniInfo.txt to /home/dom/Software/ANI/openmm-ani/build/tests/testAniInfo.txt
[ 17%] Built target CopyTestFiles
Scanning dependencies of target OpenMMANI
[ 23%] Building CXX object CMakeFiles/OpenMMANI.dir/openmmapi/src/ANIForce.cpp.o
[ 29%] Building CXX object CMakeFiles/OpenMMANI.dir/openmmapi/src/ANIForceImpl.cpp.o
[ 35%] Building CXX object CMakeFiles/OpenMMANI.dir/serialization/src/ANIForceProxy.cpp.o
[ 41%] Building CXX object CMakeFiles/OpenMMANI.dir/serialization/src/ANISerializationProxyRegistration.cpp.o
[ 47%] Linking CXX shared library libOpenMMANI.so
[ 47%] Built target OpenMMANI
Scanning dependencies of target TestSerializeANIForce
[ 52%] Building CXX object serialization/tests/CMakeFiles/TestSerializeANIForce.dir/TestSerializeANIForce.cpp.o
[ 58%] Linking CXX executable ../../TestSerializeANIForce
CMakeFiles/TestSerializeANIForce.dir/TestSerializeANIForce.cpp.o: In function `testSerialization()':
TestSerializeANIForce.cpp:(.text+0x40e): undefined reference to `OpenMM::throwException(char const*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
TestSerializeANIForce.cpp:(.text+0x5ae): undefined reference to `OpenMM::throwException(char const*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
CMakeFiles/TestSerializeANIForce.dir/TestSerializeANIForce.cpp.o: In function `void OpenMM::XmlSerializer::serialize<ANIPlugin::ANIForce>(ANIPlugin::ANIForce const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ostream&)':
TestSerializeANIForce.cpp:(.text._ZN6OpenMM13XmlSerializer9serializeIN9ANIPlugin8ANIForceEEEvPKT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSo[_ZN6OpenMM13XmlSerializer9serializeIN9ANIPlugin8ANIForceEEEvPKT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSo]+0x72): undefined reference to `OpenMM::SerializationNode::setName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
TestSerializeANIForce.cpp:(.text._ZN6OpenMM13XmlSerializer9serializeIN9ANIPlugin8ANIForceEEEvPKT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSo[_ZN6OpenMM13XmlSerializer9serializeIN9ANIPlugin8ANIForceEEEvPKT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSo]+0xe3): undefined reference to `OpenMM::SerializationNode::hasProperty(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
TestSerializeANIForce.cpp:(.text._ZN6OpenMM13XmlSerializer9serializeIN9ANIPlugin8ANIForceEEEvPKT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSo[_ZN6OpenMM13XmlSerializer9serializeIN9ANIPlugin8ANIForceEEEvPKT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSo]+0x123): undefined reference to `OpenMM::SerializationProxy::getTypeName[abi:cxx11]() const'
TestSerializeANIForce.cpp:(.text._ZN6OpenMM13XmlSerializer9serializeIN9ANIPlugin8ANIForceEEEvPKT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSo[_ZN6OpenMM13XmlSerializer9serializeIN9ANIPlugin8ANIForceEEEvPKT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSo]+0x185): undefined reference to `OpenMM::SerializationProxy::getTypeName[abi:cxx11]() const'
TestSerializeANIForce.cpp:(.text._ZN6OpenMM13XmlSerializer9serializeIN9ANIPlugin8ANIForceEEEvPKT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSo[_ZN6OpenMM13XmlSerializer9serializeIN9ANIPlugin8ANIForceEEEvPKT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSo]+0x1cd): undefined reference to `OpenMM::SerializationNode::setStringProperty(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../libOpenMMANI.so: undefined reference to `OpenMM::Platform::createKernel(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, OpenMM::ContextImpl&) const'
../../libOpenMMANI.so: undefined reference to `OpenMM::SerializationNode::getIntProperty(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
../../libOpenMMANI.so: undefined reference to `OpenMM::SerializationNode::getStringProperty(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
../../libOpenMMANI.so: undefined reference to `neurochem::instantiate_ani_ensemble(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)'
../../libOpenMMANI.so: undefined reference to `OpenMM::SerializationNode::setIntProperty(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
../../libOpenMMANI.so: undefined reference to `OpenMM::SerializationProxy::SerializationProxy(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status
serialization/tests/CMakeFiles/TestSerializeANIForce.dir/build.make:84: recipe for target 'TestSerializeANIForce' failed
make[2]: *** [TestSerializeANIForce] Error 1
CMakeFiles/Makefile2:154: recipe for target 'serialization/tests/CMakeFiles/TestSerializeANIForce.dir/all' failed
make[1]: *** [serialization/tests/CMakeFiles/TestSerializeANIForce.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
sli259 commented 2 years ago

I am trying to use the OpenMM-ANI as well, but I couldn't find the repo for CentOS versions, is it been removed?