summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Young <A-N-Other@users.noreply.github.com>2024-02-07 15:05:14 +0000
committerGitHub <noreply@github.com>2024-02-07 16:05:14 +0100
commit95e828f3d8747459fc8dc3a9347e819fd22be433 (patch)
tree24530af7a5846167c486d0e62ff99bf4d1916296
parenta28c6caac02f4981c4a9d750d19d75e19a939e2b (diff)
downloadspack-95e828f3d8747459fc8dc3a9347e819fd22be433.tar.gz
spack-95e828f3d8747459fc8dc3a9347e819fd22be433.tar.bz2
spack-95e828f3d8747459fc8dc3a9347e819fd22be433.tar.xz
spack-95e828f3d8747459fc8dc3a9347e819fd22be433.zip
s4pred: add new package (#42520)
-rw-r--r--var/spack/repos/builtin/packages/s4pred/package.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/s4pred/package.py b/var/spack/repos/builtin/packages/s4pred/package.py
new file mode 100644
index 0000000000..b25f4aa16f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/s4pred/package.py
@@ -0,0 +1,45 @@
+# Copyright 2013-2024 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 S4pred(Package):
+ """A tool for accurate prediction of a protein's secondary structure from only its amino
+ acid sequence with no evolutionary information"""
+
+ homepage = "http://bioinf.cs.ucl.ac.uk/psipred/"
+ url = "https://github.com/psipred/s4pred/archive/refs/tags/v1.2.0.tar.gz"
+
+ license("GPL-3.0-only", checked_by="A-N-Other")
+
+ version("1.2.0", sha256="133d4710cef8c58fa603bdedcd41dbd060d9afc029dd181a5bd43f6539783a89")
+
+ depends_on("python", type="run")
+
+ depends_on("py-torch@1.5.1:", type="run")
+ depends_on("py-biopython@1.78:", type="run")
+
+ resource(
+ name="weights",
+ url="http://bioinfadmin.cs.ucl.ac.uk/downloads/s4pred/weights.tar.gz",
+ sha256="6a91e887c01bac41b11249ae098fe0d43bcb9e3e15c746758a24a3299fe20283",
+ )
+
+ def install(self, spec, prefix):
+ # This package has no setup.py, so...
+ mkdirp(prefix.bin)
+ # unpack resources and correct hardcoded location
+ install_tree("weights", prefix.weights)
+ filter_file("/weights/", "/../weights/", "run_model.py")
+ # add shebang and ensure +x for the main script
+ sed = Executable("sed")
+ sed("-i", rf'1 i\#! {self.spec["python"].command.path}\n', "run_model.py")
+ os.chmod("run_model.py", 0o755)
+ # install files and make convenience symlink
+ install("*.py", prefix.bin)
+ os.symlink(join_path(prefix.bin, "run_model.py"), join_path(prefix.bin, "s4pred"))