diff options
author | George Young <A-N-Other@users.noreply.github.com> | 2024-02-07 15:05:14 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-07 16:05:14 +0100 |
commit | 95e828f3d8747459fc8dc3a9347e819fd22be433 (patch) | |
tree | 24530af7a5846167c486d0e62ff99bf4d1916296 | |
parent | a28c6caac02f4981c4a9d750d19d75e19a939e2b (diff) | |
download | spack-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.py | 45 |
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")) |