Add GNINA and related packages (#35439)
This commit is contained in:
		
							
								
								
									
										32
									
								
								var/spack/repos/builtin/packages/coordgen/package.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								var/spack/repos/builtin/packages/coordgen/package.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | ||||
| # Copyright 2013-2023 Lawrence Livermore National Security, LLC and other | ||||
| # Spack Project Developers. See the top-level COPYRIGHT file for details. | ||||
| # | ||||
| # SPDX-License-Identifier: (Apache-2.0 OR MIT) | ||||
| 
 | ||||
| from spack.package import * | ||||
| 
 | ||||
| 
 | ||||
| class Coordgen(CMakePackage): | ||||
|     """Schrödinger, Inc's 2D coordinate generation""" | ||||
| 
 | ||||
|     homepage = "https://github.com/schrodinger/coordgenlibs" | ||||
|     url = "https://github.com/schrodinger/coordgenlibs/archive/refs/tags/v3.0.2.tar.gz" | ||||
| 
 | ||||
|     maintainers("RMeli") | ||||
| 
 | ||||
|     version("3.0.2", sha256="f67697434f7fec03bca150a6d84ea0e8409f6ec49d5aab43badc5833098ff4e3") | ||||
| 
 | ||||
|     variant("maeparser", default=True, description="Use MAE parser") | ||||
|     variant("example", default=False, description="Build sample executable") | ||||
|     variant("shared", default=True, description="Build as shared library") | ||||
| 
 | ||||
|     depends_on("maeparser", when="+maeparser") | ||||
|     depends_on("boost", when="+maeparser") | ||||
| 
 | ||||
|     def cmake_args(self): | ||||
|         args = [ | ||||
|             self.define_from_variant("COORDGEN_BUILD_EXAMPLE", "example"), | ||||
|             self.define_from_variant("COORDGEN_USE_MAEPARSER", "maeparser"), | ||||
|             self.define_from_variant("COORDGEN_BUILD_SHARED_LIBS", "shared"), | ||||
|         ] | ||||
|         return args | ||||
							
								
								
									
										69
									
								
								var/spack/repos/builtin/packages/gnina/package.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								var/spack/repos/builtin/packages/gnina/package.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,69 @@ | ||||
| # Copyright 2013-2023 Lawrence Livermore National Security, LLC and other | ||||
| # Spack Project Developers. See the top-level COPYRIGHT file for details. | ||||
| # | ||||
| # SPDX-License-Identifier: (Apache-2.0 OR MIT) | ||||
| 
 | ||||
| from spack.package import * | ||||
| 
 | ||||
| 
 | ||||
| class Gnina(CMakePackage, CudaPackage): | ||||
|     """gnina (pronounced NEE-na) is a molecular docking program with integrated support | ||||
|     for scoring and optimizing ligands using convolutional neural networks.""" | ||||
| 
 | ||||
|     homepage = "https://github.com/gnina/gnina" | ||||
|     url = "https://github.com/gnina/gnina/archive/refs/tags/v1.0.3.tar.gz" | ||||
|     git = "https://github.com/gnina/gnina.git" | ||||
| 
 | ||||
|     maintainers("RMeli") | ||||
| 
 | ||||
|     version("1.0.3", sha256="4274429f38293d79c7d22ab08aca91109e327e9ce3f682cd329a8f9c6ef429da") | ||||
| 
 | ||||
|     _boost = "boost" + "".join( | ||||
|         [ | ||||
|             "+atomic", | ||||
|             "+chrono", | ||||
|             "+date_time", | ||||
|             "+exception", | ||||
|             "+filesystem", | ||||
|             "+graph", | ||||
|             "+iostreams", | ||||
|             "+locale", | ||||
|             "+log", | ||||
|             "+math", | ||||
|             "+python", | ||||
|             "+program_options", | ||||
|             "+random", | ||||
|             "+regex", | ||||
|             "+serialization", | ||||
|             "+signals", | ||||
|             "+system", | ||||
|             "+test", | ||||
|             "+thread", | ||||
|             "+timer", | ||||
|             "+wave", | ||||
|         ] | ||||
|     ) | ||||
| 
 | ||||
|     depends_on("zlib") | ||||
|     depends_on(_boost) | ||||
|     depends_on("glog") | ||||
|     depends_on("protobuf") | ||||
|     depends_on("hdf5+cxx+hl") | ||||
|     depends_on("openblas~fortran") | ||||
| 
 | ||||
|     depends_on("libmolgrid") | ||||
| 
 | ||||
|     depends_on("openbabel@3:~gui~cairo~maeparser~coordgen") | ||||
|     # depends_on("rdkit") | ||||
| 
 | ||||
|     depends_on("python", type="build") | ||||
|     depends_on("py-numpy", type="build") | ||||
|     depends_on("py-pytest", type="build") | ||||
| 
 | ||||
|     depends_on("cuda@11") | ||||
| 
 | ||||
|     def cmake_args(self): | ||||
|         args = [ | ||||
|             "-DBLAS=Open",  # Use OpenBLAS instead of Atlas' BLAS | ||||
|         ] | ||||
|         return args | ||||
							
								
								
									
										40
									
								
								var/spack/repos/builtin/packages/libmolgrid/package.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								var/spack/repos/builtin/packages/libmolgrid/package.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | ||||
| # Copyright 2013-2023 Lawrence Livermore National Security, LLC and other | ||||
| # Spack Project Developers. See the top-level COPYRIGHT file for details. | ||||
| # | ||||
| # SPDX-License-Identifier: (Apache-2.0 OR MIT) | ||||
| 
 | ||||
| import os | ||||
| 
 | ||||
| from spack.package import * | ||||
| 
 | ||||
| 
 | ||||
| class Libmolgrid(CMakePackage): | ||||
|     """libmolgrid is a library to generate tensors from molecular data, with properties | ||||
|     that make its output particularly suited to machine learning.""" | ||||
| 
 | ||||
|     homepage = "https://gnina.github.io/libmolgrid/" | ||||
|     url = "https://github.com/gnina/libmolgrid/archive/refs/tags/v0.5.2.tar.gz" | ||||
| 
 | ||||
|     maintainers("RMeli") | ||||
| 
 | ||||
|     version("0.5.3", sha256="a9f7a62cdeb516bc62a06b324cdd33b095a787df175c6166d74a8d30b6916abb") | ||||
|     version("0.5.2", sha256="e732d13a96c2f374d57a73999119bef700172d392c195c751214aa6ac6680c3a") | ||||
| 
 | ||||
|     depends_on("zlib") | ||||
|     depends_on("boost +regex +test +program_options +system +filesystem +iostreams +python") | ||||
|     depends_on("openbabel@3:~gui~cairo") | ||||
|     depends_on("cuda@11") | ||||
| 
 | ||||
|     depends_on("python") | ||||
|     depends_on("py-numpy") | ||||
|     depends_on("py-pytest") | ||||
| 
 | ||||
|     def cmake_args(self): | ||||
|         ob_incl = os.path.join(self.spec["openbabel"].prefix.include, "openbabel3") | ||||
|         ob_libs = self.spec["openbabel"].libs.joined(";") | ||||
| 
 | ||||
|         args = [ | ||||
|             "-DOPENBABEL3_INCLUDE_DIR=" + ob_incl, | ||||
|             "-DOPENBABEL3_LIBRARIES=" + ob_libs, | ||||
|         ] | ||||
|         return args | ||||
| @@ -4,7 +4,6 @@ | ||||
| # SPDX-License-Identifier: (Apache-2.0 OR MIT) | ||||
| 
 | ||||
| from spack.package import * | ||||
| from spack.pkg.builtin.boost import Boost | ||||
| 
 | ||||
| 
 | ||||
| class Openbabel(CMakePackage): | ||||
| @@ -28,6 +27,10 @@ class Openbabel(CMakePackage): | ||||
| 
 | ||||
|     variant("python", default=True, description="Build Python bindings") | ||||
|     variant("gui", default=True, description="Build with GUI") | ||||
|     variant("cairo", default=True, description="Build with Cairo (PNG output support)") | ||||
|     variant("openmp", default=False, description="Build with OpenMP") | ||||
|     variant("maeparser", default=False, description="Built with MAE parser") | ||||
|     variant("coordgen", default=False, description="Build with Coordgen") | ||||
| 
 | ||||
|     extends("python", when="+python") | ||||
| 
 | ||||
| @@ -36,12 +39,9 @@ class Openbabel(CMakePackage): | ||||
|     depends_on("pkgconfig", type="build") | ||||
|     depends_on("swig@2.0:", type="build", when="+python") | ||||
| 
 | ||||
|     # TODO: replace this with an explicit list of components of Boost, | ||||
|     # for instance depends_on('boost +filesystem') | ||||
|     # See https://github.com/spack/spack/pull/22303 for reference | ||||
|     depends_on(Boost.with_default_variants) | ||||
|     depends_on("cairo")  # required to support PNG depiction | ||||
|     depends_on("pango")  # custom cairo requires custom pango | ||||
|     depends_on("boost +filesystem +iostreams +test") | ||||
|     depends_on("cairo", when="+cairo")  # required to support PNG depiction | ||||
|     depends_on("pango", when="+cairo")  # custom cairo requires custom pango | ||||
|     depends_on("eigen@3.0:")  # required if using the language bindings | ||||
|     depends_on("libxml2")  # required to read/write CML files, XML formats | ||||
|     depends_on("zlib")  # required to support reading gzipped files | ||||
| @@ -49,6 +49,9 @@ class Openbabel(CMakePackage): | ||||
|     depends_on("libsm") | ||||
|     depends_on("uuid") | ||||
| 
 | ||||
|     depends_on("maeparser", when="+maeparser") | ||||
|     depends_on("coordgen", when="+coordgen") | ||||
| 
 | ||||
|     # Needed for Python 3.6 support | ||||
|     patch("python-3.6-rtld-global.patch", when="@:2.4.1+python") | ||||
| 
 | ||||
| @@ -71,8 +74,9 @@ def cmake_args(self): | ||||
|             args.append("-DPYTHON_BINDINGS=OFF") | ||||
| 
 | ||||
|         args.append(self.define_from_variant("BUILD_GUI", "gui")) | ||||
| 
 | ||||
|         args.append("-DWITH_MAEPARSER=OFF")  # maeparser is currently broken | ||||
|         args.append(self.define_from_variant("ENABLE_OPENMP", "openmp")) | ||||
|         args.append(self.define_from_variant("WITH_MAEPARSER", "maeparser")) | ||||
|         args.append(self.define_from_variant("WITH_COORDGEN", "coordgen")) | ||||
| 
 | ||||
|         return args | ||||
| 
 | ||||
|   | ||||
| @@ -42,14 +42,19 @@ class Rdkit(CMakePackage): | ||||
|     version("2020_09_1", sha256="ac105498be52ff77f7e9328c41d0e61a2318cac0789d6efc30f5f50dc78a992c") | ||||
|     version("2020_03_6", sha256="a3663295a149aa0307ace6d1995094d0334180bc8f892fa325558a110154272b") | ||||
| 
 | ||||
|     variant("freetype", default=True, description="Build freetype support") | ||||
| 
 | ||||
|     depends_on("python@3:") | ||||
|     depends_on("boost@1.53.0: +python +serialization +iostreams +system") | ||||
| 
 | ||||
|     depends_on("py-numpy") | ||||
|     depends_on("sqlite") | ||||
| 
 | ||||
|     depends_on("freetype", when="@2020_09_1: +freetype") | ||||
| 
 | ||||
|     extends("python") | ||||
| 
 | ||||
|     def cmake_args(self): | ||||
|         args = ["-DCMAKE_CXX_STANDARD=14", "-DRDK_INSTALL_INTREE=OFF"] | ||||
|         args.append(self.define_from_variant("RDK_BUILD_FREETYPE_SUPPORT", "freetype")) | ||||
|         return args | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Rocco Meli
					Rocco Meli