diff --git a/packages/acpype/package.py b/packages/acpype/package.py new file mode 100644 index 0000000000000000000000000000000000000000..5b52b2d7cf46a7b85b131f679da2fb3f7a5cddcc --- /dev/null +++ b/packages/acpype/package.py @@ -0,0 +1,21 @@ +from spack import * + +class Acpype(PythonPackage): + """A tool based in Python to use Antechamber to generate topologies for chemical + compounds and to interface with others python applications like CCPN and ARIA""" + + # Homepage and download url + homepage = "https://github.com/alanwilter/acpype" + git = 'https://github.com/alanwilter/acpype.git' + + # Set the gitlab accounts of this package maintainers + maintainers = ['dbeltran'] + + # Versions + version('2022.7.21', branch='master') + + # Dependencies + depends_on('python@3.8:', type=('build', 'run')) + depends_on('ambertools') + depends_on('openbabel') + depends_on('py-poetry-core') diff --git a/packages/ambertools/package.py b/packages/ambertools/package.py new file mode 100644 index 0000000000000000000000000000000000000000..8f479cf57433828801aa7f68bc110ac326df2d24 --- /dev/null +++ b/packages/ambertools/package.py @@ -0,0 +1,79 @@ +from spack import * + +class Ambertools (CMakePackage): + """AmberTools is a free, useful standalone package and a prerequisite for installing Amber itself. + The AmberTools suite is free of charge, and its components are mostly released under the GNU General Public License (GPL). + A few components are included that are in the public domain or which have other, open-source, licenses. + The libsander and libpbsa libraries use the LGPL license.""" + + # Set the homepage and download url + homepage = "https://ambermd.org/AmberTools.php" + url = "https://ambermd.org/downloads/AmberTools22jlmrcc.tar.bz2" + + # Set the gitlab accounts of this package maintainers + maintainers = ['dbeltran', 'elmath'] + + version('22jlmrcc', sha256='1571d4e0f7d45b2a71dce5999fa875aea8c90ee219eb218d7916bf30ea229121') + + # Dependencies + depends_on("flex", type="build") # This is necessary for sure (experimentally tested) + depends_on("bison", type="build") # This is necessary for sure (experimentally tested) + depends_on("tcsh", type="build") + depends_on("zlib", type=("build", "run")) + depends_on("bzip2", type=("build", "run")) + depends_on("blas", type=("build", "run")) + depends_on("lapack", type=("build", "run")) + depends_on("arpack-ng", type=("build", "run")) + depends_on("netcdf-c", type=("build", "run")) + depends_on("netcdf-fortran", type=("build", "run")) + depends_on("fftw", type=("build", "run")) + depends_on("readline", type=("build", "run")) + depends_on("netlib-xblas~plain_blas", type=("build", "run")) + # specific variants needed for boost - from the build log "Could NOT find Boost (missing: thread system program_options iostreams regex timer chrono filesystem graph)" + depends_on("boost+thread+system+program_options+iostreams+regex+timer+chrono+filesystem+graph", type=("build", "run")) + + # Python dependencies + # WARNING: If a python 3.8 version is already installed in spack then the '+tkinter' variant makes spack ignore the version + # WARNING: Spack may try to install the preferred python version (i.e. python 3.10.8) + # WARNING: The soultion is uninstall python and reinstall with this variant + depends_on('python@3.8: +tkinter', type=('build', 'run')) + depends_on("py-numpy", type=("build", "run")) + depends_on("py-matplotlib", type=("build", "run")) + depends_on("py-scipy", type=("build", "run")) + + def cmake_args(self): + # Translated from ambertools build/run_cmake script + # We also add the TRUST_SYSTEM_LIBS argument that is mentioned in the ambertools CMake guide + # https://ambermd.org/pmwiki/pmwiki.php/Main/CMake-Guide-to-Options + args = [ + self.define("COMPILER", "GNU"), + self.define("MPI", False), + self.define("CUDA", False), + self.define("INSTALL_TESTS", True), + self.define("DOWNLOAD_MINICONDA", False), + self.define("TRUST_SYSTEM_LIBS", True), + # This is to avoid the x11 (X11_Xext_LIB) error + # It is equivalent to the '-noX11' flag accoridng to the docs: + # https://ambermd.org/pmwiki/pmwiki.php/Main/CMake-Common-Options + self.define("BUILD_GUI", False) + ] + return args + + def setup_run_environment(self, env): + env.set("AMBER_PREFIX", self.prefix) + env.set("AMBERHOME", self.prefix) + + def setup_build_environment(self, env): + env.set("AMBER_PREFIX", self.prefix) + env.set("AMBERHOME", self.prefix) + + @run_after('install') + @on_package_attributes(run_tests=True) + def check_install(self): + make("test.serial") + + # temporarily copy netcdf.h header file to netcdf-fortran/include to pass the Ambertools cmake check (quickest fix, will probably cause problems, needs to change) + @run_before("cmake") + def fix_check(self): + cp = Executable("cp") + cp(self.spec["netcdf-c"].headers.directories[0]+"/netcdf.h", self.spec["netcdf-fortran"].headers.directories[0]) diff --git a/packages/biobb-analysis/package.py b/packages/biobb-analysis/package.py new file mode 100644 index 0000000000000000000000000000000000000000..68b45f4e28e905d728efcfb65e804af480b10d44 --- /dev/null +++ b/packages/biobb-analysis/package.py @@ -0,0 +1,21 @@ +from spack import * + +class BiobbAnalysis(PythonPackage): + """Biobb_analysis is the Biobb module collection to perform analysis + of molecular dynamics simulations""" + + # Homepage and download url + homepage = "https://github.com/bioexcel/biobb_analysis" + git = 'https://github.com/bioexcel/biobb_analysis.git' + + # Set the gitlab accounts of this package maintainers + maintainers = ['dbeltran'] + + # Versions + version('4.0.1', branch='master') + + # Dependencies + depends_on('python@3.8:', type=('build', 'run')) + depends_on('biobb-common') + depends_on('gromacs') + depends_on('ambertools') diff --git a/packages/biobb-chemistry/package.py b/packages/biobb-chemistry/package.py new file mode 100644 index 0000000000000000000000000000000000000000..323ec74089f709dc76fe83bb0725d4b60b525010 --- /dev/null +++ b/packages/biobb-chemistry/package.py @@ -0,0 +1,22 @@ +from spack import * + +class BiobbChemistry(PythonPackage): + """Biobb_chemistry is the Biobb module collection to perform chemistry + over molecular dynamics simulations.""" + + # Homepage and download url + homepage = "https://github.com/bioexcel/biobb_chemistry" + git = 'https://github.com/bioexcel/biobb_chemistry.git' + + # Set the gitlab accounts of this package maintainers + maintainers = ['dbeltran'] + + # Versions + version('4.0.0', branch='master') + + # Dependencies + depends_on('python@3.8:', type=('build', 'run')) + depends_on('biobb-common') + depends_on('openbabel') + depends_on('ambertools') + depends_on('acpype') diff --git a/packages/biobb-common/.gitkeep b/packages/biobb-common/.gitkeep deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/packages/biobb-common/package.py b/packages/biobb-common/package.py index 6a5aa81ff00a3327a0e5cd519bde6a48e70824fc..f9996ae582f75b15219379ef07ab6598c962dda2 100644 --- a/packages/biobb-common/package.py +++ b/packages/biobb-common/package.py @@ -1,9 +1,3 @@ -# 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 import * class BiobbCommon(PythonPackage): @@ -11,17 +5,17 @@ class BiobbCommon(PythonPackage): # Homepage and download url homepage = "https://github.com/bioexcel/biobb_common" - url = "https://github.com/bioexcel/biobb_common/archive/refs/tags/v3.8.1.tar.gz" + git = 'https://github.com/bioexcel/biobb_common.git' + # Set the gitlab accounts of this package maintainers maintainers = ['dbeltran'] # Versions - version('3.8.1', sha256='b6c939c1445ea2f8282e491e0414cc15f4934466ca24ecd77e24cef2e7df49e4') + version('4.0.0', branch='master') # Dependencies - depends_on('python@3.8:') - depends_on('py-setuptools', type=('build')) + depends_on('py-setuptools') + depends_on('python@3.8:', type=('build', 'run')) depends_on('py-pyyaml', type=('build', 'run')) depends_on('py-requests', type=('build', 'run')) depends_on('py-biopython@1.78:1.80', type=('build', 'run')) - diff --git a/packages/biobb-gromacs/.gitkeep b/packages/biobb-gromacs/.gitkeep deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/packages/biobb-gromacs/package.py b/packages/biobb-gromacs/package.py index c99d49af3ab3f472c62f07d8a1057ab24e22df8a..5e7341bd82aacefd1355d17aa28097bad994f6d7 100644 --- a/packages/biobb-gromacs/package.py +++ b/packages/biobb-gromacs/package.py @@ -1,9 +1,3 @@ -# 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 import * class BiobbGromacs(PythonPackage): @@ -12,15 +6,12 @@ class BiobbGromacs(PythonPackage): # Homepage and download url homepage = "https://github.com/bioexcel/biobb_gromacs" - url = "https://github.com/bioexcel/biobb_gromacs/archive/refs/tags/v3.8.1.tar.gz" - - maintainers = ['dbeltran'] + git = 'https://github.com/bioexcel/biobb_gromacs.git' # Versions - version('3.8.1', sha256='6da49b691b14a8bcf7ffca08c898fe9affd258ca2f8c7be4981df840a6907efa') + version('4.0.0', branch='master') # Dependencies - depends_on('python@3.8:') - depends_on('py-setuptools', type=('build')) - depends_on('biobb-common@3.8.1', type=('build', 'run'), when='@3.8.1') + depends_on('python@3.8:', type=('build', 'run')) + depends_on('biobb-common') depends_on('gromacs') diff --git a/packages/biobb-io/package.py b/packages/biobb-io/package.py new file mode 100644 index 0000000000000000000000000000000000000000..1b6f1a44d03dc0567dd3d0a4b91aba58e8f6b668 --- /dev/null +++ b/packages/biobb-io/package.py @@ -0,0 +1,16 @@ +from spack import * + +class BiobbIo(PythonPackage): + """Biobb_io is the Biobb module collection to fetch data to be + consumed by the rest of the Biobb building blocks""" + + # Homepage and download url + homepage = "https://github.com/bioexcel/biobb_io" + git = 'https://github.com/bioexcel/biobb_io.git' + + # Versions + version('4.0.0', branch='master') + + # Dependencies + depends_on('biobb-common') + depends_on('python@3.8:', type=('build', 'run')) diff --git a/packages/biobb-model/package.py b/packages/biobb-model/package.py new file mode 100644 index 0000000000000000000000000000000000000000..999ce8faa400686e3cdb27bbac86bcfd5a1696d8 --- /dev/null +++ b/packages/biobb-model/package.py @@ -0,0 +1,17 @@ +from spack import * + +class BiobbModel(PythonPackage): + """Biobb_model is the Biobb module collection to check and model 3d structures, + create mutations or reconstruct missing atoms""" + + # Homepage and download url + homepage = "https://github.com/bioexcel/biobb_model" + git = 'https://github.com/bioexcel/biobb_model.git' + + # Versions + version('4.0.0', branch='master') + + # Dependencies + depends_on('python@3.8:', type=('build', 'run')) + depends_on('biobb-common') + depends_on('biobb-structure-checking') diff --git a/packages/biobb-structure-checking/package.py b/packages/biobb-structure-checking/package.py new file mode 100644 index 0000000000000000000000000000000000000000..4719d65fa962c06d1d7b9f83f61d5e11f5344db5 --- /dev/null +++ b/packages/biobb-structure-checking/package.py @@ -0,0 +1,20 @@ +from spack import * + +class BiobbStructureChecking(PythonPackage): + """Biobb_structure_checking performs a checking of the quality of a + 3D structure intended to facilitate the setup of molecular dynamics + simulation of protein or nucleic acids systems""" + + # Homepage and download url + homepage = "https://github.com/bioexcel/biobb_structure_checking" + git = 'https://github.com/bioexcel/biobb_structure_checking.git' + + # Versions + version('3.12.1', branch='master') + + # Dependencies + depends_on('py-setuptools') + depends_on('python@3.8:', type=('build', 'run')) + depends_on('py-psutil', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-biopython@1.78:1.80', type=('build', 'run')) diff --git a/packages/biobb-structure-utils/package.py b/packages/biobb-structure-utils/package.py new file mode 100644 index 0000000000000000000000000000000000000000..b9ed8b575c0e36f6d1772adeeb8265c8d2216788 --- /dev/null +++ b/packages/biobb-structure-utils/package.py @@ -0,0 +1,17 @@ +from spack import * + +class BiobbStructureUtils(PythonPackage): + """Biobb_structure_utils is the Biobb module collection to modify + or extract information from a PDB structure file.""" + + # Homepage and download url + homepage = "https://github.com/bioexcel/biobb_structure_utils" + git = 'https://github.com/bioexcel/biobb_structure_utils.git' + + # Versions + version('4.0.0', branch='master') + + # Dependencies + depends_on('python@3.8:', type=('build', 'run')) + depends_on('biobb-common') + depends_on('biobb-structure-checking') diff --git a/packages/nest/.gitkeep b/packages/nest/.gitkeep deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/packages/nest/package.py b/packages/nest/package.py index 5eb8ec3fc4ff7d9d3598360994819c790c56c022..54724904c7d33e0ff2bd50acd3c2190389209faf 100644 --- a/packages/nest/package.py +++ b/packages/nest/package.py @@ -101,7 +101,7 @@ class Nest(CMakePackage): depends_on('mpi', when='+mpi') depends_on('py-mpi4py', when='+python+mpi', type=('run', 'test')) - depends_on('doxygen', type='build') + # depends_on('doxygen', type='build') depends_on('gsl', when='+gsl') depends_on('readline', type=('build', 'run', 'test')) depends_on('ncurses', type=('build', 'run', 'test')) diff --git a/packages/nglview/package.py b/packages/nglview/package.py new file mode 100644 index 0000000000000000000000000000000000000000..fda735651d9d1bd0c80dd647d2524a63d72064b1 --- /dev/null +++ b/packages/nglview/package.py @@ -0,0 +1,23 @@ +from spack import * + +class Nglview(PythonPackage): + """An IPython/Jupyter widget to interactively view molecular structures and trajectories. + Utilizes the embeddable NGL Viewer for rendering.""" + + # Homepage and download url + homepage = "https://github.com/nglviewer/nglview" + git = 'https://github.com/nglviewer/nglview.git' + + # Set the gitlab accounts of this package maintainers + maintainers = ['dbeltran'] + + # Versions + version('3.0.4', branch='master') + + # Dependencies + depends_on('python@3.8:', type=('build', 'run')) + depends_on('py-setuptools') + depends_on('py-jupyter-packaging') + depends_on('py-versioneer') + depends_on('py-numpy', type=('run')) + depends_on('py-ipywidgets', type=('run')) \ No newline at end of file diff --git a/packages/simpletraj/package.py b/packages/simpletraj/package.py new file mode 100644 index 0000000000000000000000000000000000000000..373665bffa3ed3c29409ca5952a2e6ebe79f7ed4 --- /dev/null +++ b/packages/simpletraj/package.py @@ -0,0 +1,19 @@ +from spack import * + +class Simpletraj(PythonPackage): + """Lightweight coordinate-only trajectory reader based on code from GROMACS, MDAnalysis and VMD.""" + + # Homepage and download url + homepage = "https://github.com/arose/simpletraj" + git = 'https://github.com/arose/simpletraj.git' + + # Set the gitlab accounts of this package maintainers + maintainers = ['dbeltran'] + + # Versions + version('0.3', branch='master') + + # Dependencies + depends_on('python@3.8:', type=('build', 'run')) + depends_on('py-setuptools') + depends_on('py-numpy') diff --git a/spack.yaml b/spack.yaml index 08ff558d4cbc134982513c233578263315c3c632..e1aa0a3732a84e4cb20ef9ebec059f8df22e1c4c 100644 --- a/spack.yaml +++ b/spack.yaml @@ -1,70 +1,77 @@ spack: specs: # Notebook - - r-irkernel - - py-ipython + - py-ipycanvas - py-ipykernel + - py-ipython - py-notebook - - py-ipycanvas + - r-irkernel # "collab"-specific constraint to match ("jupyterlab_widgets") in the base image - py-ipywidgets@:7.7 # Collab utils - clb-nb-utils@0.1.0 # EBRAINS tools - - nest@3.4 + - apbs@3.4.0 - arbor@0.8.1 +python +mpi + - biobb-analysis@4.0.1 + - biobb-chemistry@4.0.0 + - biobb-common@4.0.0 + - biobb-gromacs@4.0.0 + - biobb-io@4.0.0 + - biobb-model@4.0.0 + - biobb-structure-checking@3.12.1 + - biobb-structure-utils@4.0.0 + - hxtorch@5.0-rc1 + - nest@3.4 - neuron@8.2.2 +mpi - - py-pynn@0.11.0 +mpi + - nglview@3.0.4 - py-brian2@2.5.0.2 - - py-tvb-data@2.7 - - py-tvb-gdist@2.2 - - py-tvb-library@2.8.1 - - py-tvb-storage@2.8.1 - - py-tvb-framework@2.8.1.1 - - pynn-brainscales@5.0-rc1 - - hxtorch@5.0-rc1 - - py-nestml@5.2.0 - - py-neo@0.12.0 - - py-hdmf@3.4.6 - - py-pynwb@2.1.0 - - py-nixio@1.5.3 - py-cerebrus@1.3.4 - - py-sciunit@0.2.5.1 - - py-quantities@0.14.1 - - py-quantities-scidash@0.12.4.3 - - py-ebrains-kg-core@0.9.14 - py-ebrains-drive@0.5.1 + - py-ebrains-kg-core@0.9.14 + - py-efel@4.0.4 + - py-elephant@0.12.0 - py-fairgraph@0.10.0 - - py-nameparser@1.1.1 - - py-lazyarray@0.5.2 + - py-frites@0.4.2 - py-hbp-archive@1.1.1 - - py-viziphant@0.3.0 - - py-hippounit@1.3.6 - - py-efel@4.0.4 - py-hbp-neuromorphic-platform@0.10.1 - py-hbp-validation-client@0.8.2 + - py-hdmf@3.4.6 + - py-hippounit@1.3.6 + - py-lazyarray@0.5.2 - py-lfpy@2.3 - - py-elephant@0.12.0 - - py-frites@0.4.2 - - py-snudda@1.4.0 - - py-pyunicore@0.14.1 + - py-nameparser@1.1.1 + - py-neo@0.12.0 + - py-nestml@5.2.0 - py-neuror@1.4.2 - - biobb-common@3.8.1 - - biobb-gromacs@3.8.1 - - apbs@3.4.0 + - py-neurom@3.2.2 + - py-nixio@1.5.3 - py-pdb2pqr@3.5.2 - - sda@7.3.3d - - r-uqsa@2.2 + - py-pynn@0.11.0 +mpi + - py-pynwb@2.1.0 + - py-pyunicore@0.14.1 + - py-quantities-scidash@0.12.4.3 + - py-quantities@0.14.1 + - py-sciunit@0.2.5.1 + - py-snudda@1.4.0 + - py-tvb-data@2.7 + - py-tvb-framework@2.8.1.1 + - py-tvb-gdist@2.2 + - py-tvb-library@2.8.1 + - py-tvb-storage@2.8.1 + - py-viziphant@0.3.0 + - pynn-brainscales@5.0-rc1 - r-rgsl@0.1 - r-sbtabvfgen@0.1 - #- py-version-query - #- py-cerebstats - #- py-cerebunit - #- py-morphounit@1.0.4 - #- py-neurom@1.4.10 - #- py-morphio@3.1.1 + - r-uqsa@2.2 + - sda@7.3.3d + - simpletraj@0.3 # Workflows (meta-packages) - wf-uq-akar4@0.1 - wf-multi-area-model@0.1 + #- py-cerebstats + #- py-cerebunit + #- py-morphounit@1.0.4 + #- py-version-query concretizer: unify: true