Add GNINA and related packages (#35439)
This commit is contained in:
parent
0500a3cec0
commit
3016da79fe
5 changed files with 159 additions and 9 deletions
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
|
||||||
|
|
Loading…
Reference in a new issue