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) | # SPDX-License-Identifier: (Apache-2.0 OR MIT) | ||||||
| 
 | 
 | ||||||
| from spack.package import * | from spack.package import * | ||||||
| from spack.pkg.builtin.boost import Boost |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class Openbabel(CMakePackage): | class Openbabel(CMakePackage): | ||||||
| @@ -28,6 +27,10 @@ class Openbabel(CMakePackage): | |||||||
| 
 | 
 | ||||||
|     variant("python", default=True, description="Build Python bindings") |     variant("python", default=True, description="Build Python bindings") | ||||||
|     variant("gui", default=True, description="Build with GUI") |     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") |     extends("python", when="+python") | ||||||
| 
 | 
 | ||||||
| @@ -36,12 +39,9 @@ class Openbabel(CMakePackage): | |||||||
|     depends_on("pkgconfig", type="build") |     depends_on("pkgconfig", type="build") | ||||||
|     depends_on("swig@2.0:", type="build", when="+python") |     depends_on("swig@2.0:", type="build", when="+python") | ||||||
| 
 | 
 | ||||||
|     # TODO: replace this with an explicit list of components of Boost, |     depends_on("boost +filesystem +iostreams +test") | ||||||
|     # for instance depends_on('boost +filesystem') |     depends_on("cairo", when="+cairo")  # required to support PNG depiction | ||||||
|     # See https://github.com/spack/spack/pull/22303 for reference |     depends_on("pango", when="+cairo")  # custom cairo requires custom pango | ||||||
|     depends_on(Boost.with_default_variants) |  | ||||||
|     depends_on("cairo")  # required to support PNG depiction |  | ||||||
|     depends_on("pango")  # custom cairo requires custom pango |  | ||||||
|     depends_on("eigen@3.0:")  # required if using the language bindings |     depends_on("eigen@3.0:")  # required if using the language bindings | ||||||
|     depends_on("libxml2")  # required to read/write CML files, XML formats |     depends_on("libxml2")  # required to read/write CML files, XML formats | ||||||
|     depends_on("zlib")  # required to support reading gzipped files |     depends_on("zlib")  # required to support reading gzipped files | ||||||
| @@ -49,6 +49,9 @@ class Openbabel(CMakePackage): | |||||||
|     depends_on("libsm") |     depends_on("libsm") | ||||||
|     depends_on("uuid") |     depends_on("uuid") | ||||||
| 
 | 
 | ||||||
|  |     depends_on("maeparser", when="+maeparser") | ||||||
|  |     depends_on("coordgen", when="+coordgen") | ||||||
|  | 
 | ||||||
|     # Needed for Python 3.6 support |     # Needed for Python 3.6 support | ||||||
|     patch("python-3.6-rtld-global.patch", when="@:2.4.1+python") |     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("-DPYTHON_BINDINGS=OFF") | ||||||
| 
 | 
 | ||||||
|         args.append(self.define_from_variant("BUILD_GUI", "gui")) |         args.append(self.define_from_variant("BUILD_GUI", "gui")) | ||||||
| 
 |         args.append(self.define_from_variant("ENABLE_OPENMP", "openmp")) | ||||||
|         args.append("-DWITH_MAEPARSER=OFF")  # maeparser is currently broken |         args.append(self.define_from_variant("WITH_MAEPARSER", "maeparser")) | ||||||
|  |         args.append(self.define_from_variant("WITH_COORDGEN", "coordgen")) | ||||||
| 
 | 
 | ||||||
|         return args |         return args | ||||||
| 
 | 
 | ||||||
|   | |||||||
| @@ -42,14 +42,19 @@ class Rdkit(CMakePackage): | |||||||
|     version("2020_09_1", sha256="ac105498be52ff77f7e9328c41d0e61a2318cac0789d6efc30f5f50dc78a992c") |     version("2020_09_1", sha256="ac105498be52ff77f7e9328c41d0e61a2318cac0789d6efc30f5f50dc78a992c") | ||||||
|     version("2020_03_6", sha256="a3663295a149aa0307ace6d1995094d0334180bc8f892fa325558a110154272b") |     version("2020_03_6", sha256="a3663295a149aa0307ace6d1995094d0334180bc8f892fa325558a110154272b") | ||||||
| 
 | 
 | ||||||
|  |     variant("freetype", default=True, description="Build freetype support") | ||||||
|  | 
 | ||||||
|     depends_on("python@3:") |     depends_on("python@3:") | ||||||
|     depends_on("boost@1.53.0: +python +serialization +iostreams +system") |     depends_on("boost@1.53.0: +python +serialization +iostreams +system") | ||||||
| 
 | 
 | ||||||
|     depends_on("py-numpy") |     depends_on("py-numpy") | ||||||
|     depends_on("sqlite") |     depends_on("sqlite") | ||||||
| 
 | 
 | ||||||
|  |     depends_on("freetype", when="@2020_09_1: +freetype") | ||||||
|  | 
 | ||||||
|     extends("python") |     extends("python") | ||||||
| 
 | 
 | ||||||
|     def cmake_args(self): |     def cmake_args(self): | ||||||
|         args = ["-DCMAKE_CXX_STANDARD=14", "-DRDK_INSTALL_INTREE=OFF"] |         args = ["-DCMAKE_CXX_STANDARD=14", "-DRDK_INSTALL_INTREE=OFF"] | ||||||
|  |         args.append(self.define_from_variant("RDK_BUILD_FREETYPE_SUPPORT", "freetype")) | ||||||
|         return args |         return args | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Rocco Meli
					Rocco Meli