Skip to content

Commit

Permalink
progress on #166 FragPipe
Browse files Browse the repository at this point in the history
  • Loading branch information
PetrKralCZ committed Nov 6, 2023
1 parent 632d7a4 commit 8a410ba
Show file tree
Hide file tree
Showing 5 changed files with 247 additions and 0 deletions.
37 changes: 37 additions & 0 deletions 166_FragPipe/EasyPQP-0.1.40-foss-2022b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
easyblock = 'PythonBundle'

name = 'EasyPQP'
version = '0.1.40'

homepage = 'https://github.com/grosenberger/easypqp'
description = """EasyPQP is a Python package that provides simplified and fast peptide query
parameter generation for OpenSWATH. It can process input from MSFragger or other database
search engines in pepXML format. """

toolchain = {'name': 'foss', 'version': '2022b'}

dependencies = [
('Python', '3.10.8'),
('Biopython', '1.81'),
('matplotlib', '3.7.0'),
# ('numba', '0.56.4'), # TODO
('scikit-learn', '1.2.1'),
]

sanity_pip_check = True
use_pip = True

exts_list = [
('%(namelower)s', version, {
'checksums': ['9ea5db3d58b7ed49972477240ab079e60cc42488bfccf508d2a74e2d7f357bc5'],
}),
]

sanity_check_paths = {
'files': ['bin/%(namelower)s'],
'dirs': [],
}

sanity_check_commands = ["%(namelower)s --help"]

moduleclass = 'tools'
26 changes: 26 additions & 0 deletions 166_FragPipe/FragPipe-20.0-Java-11.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
easyblock = 'Tarball'

name = 'FragPipe'
version = '20.0'
versionsuffix = '-Java-%(javaver)s'

homepage = 'https://fragpipe.nesvilab.org'
description = """FragPipe is a Java Graphical User Interface (GUI) for a suite of computational
tools enabling comprehensive analysis of mass spectrometry-based proteomics data."""

toolchain = SYSTEM

source_urls = ['https://github.com/Nesvilab/%(name)s/releases/download/%(version)s/']
sources = ['%(name)s-%(version)s.zip']
checksums = ['0d77db85ae26c190a915823e1c68238f3a19533810734b008564b2a8d85d1bd6']

dependencies = [('Java', '11')]

sanity_check_paths = {
'files': ['bin/%(namelower)s', 'lib/%(namelower)s-%(version)s.jar'],
'dirs': [],
}

sanity_check_commands = ["%(namelower)s -h | grep -q v%(version)s"]

moduleclass = 'bio'
35 changes: 35 additions & 0 deletions 166_FragPipe/Philosopher-5.0.0-GCC-12.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
easyblock = 'MakeCp'

name = 'Philosopher'
version = '5.0.0'

homepage = 'https://philosopher.nesvilab.org/'
description = """Philosopher is a fast, easy-to-use, scalable, and versatile
data analysis software for mass spectrometry-based proteomics. Philosopher
is dependency-free and can analyze both traditional database searches and
open searches for post-translational modification (PTM) discovery."""

toolchain = {'name': 'GCC', 'version': '12.2.0'}

source_urls = ['https://github.com/Nesvilab/philosopher/archive/']
sources = [{'download_filename': 'v%s.tar.gz' % version, 'filename': SOURCE_TAR_GZ}]
checksums = ['0c6895c60c1c2543f7b0ad7f8baae4be39c9c519d6035c8fdd2ad8a2f83a99cc']

builddependencies = [
('Go', '1.21.2', '', SYSTEM),
]

buildopts = 'CC="$CC" CFLAGS="$CFLAGS"'

files_to_copy = [
(['%(namelower)s'], 'bin'),
]

sanity_check_paths = {
'files': ['bin/%(namelower)s'],
'dirs': []
}

sanity_check_commands = ['%(namelower)s --help']

moduleclass = 'bio'
95 changes: 95 additions & 0 deletions 166_FragPipe/llvmlite-0.39.1_fix-LLVM-15.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
fix build on top of LLVM 14,
like this: https://github.com/numba/llvmlite/issues/897
diff -ruN llvmlite-0.39.1.orig/ffi/passmanagers.cpp llvmlite-0.39.1/ffi/passmanagers.cpp
--- llvmlite-0.39.1.orig/ffi/passmanagers.cpp 2022-09-01 13:47:22.477959200 +0000
+++ llvmlite-0.39.1/ffi/passmanagers.cpp 2023-01-10 16:59:33.776510869 +0000
@@ -8,6 +8,7 @@
#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/IR/DiagnosticPrinter.h"
#include "llvm/IR/LegacyPassManager.h"
+#include "llvm/Pass.h"
#include "llvm/IR/Module.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/ToolOutputFile.h"
@@ -17,9 +18,6 @@
#include "llvm-c/Transforms/IPO.h"
#include "llvm-c/Transforms/Scalar.h"
#include "llvm/IR/LegacyPassManager.h"
-#if LLVM_VERSION_MAJOR > 11
-#include "llvm/IR/RemarkStreamer.h"
-#endif
#include "llvm/IR/LLVMRemarkStreamer.h"
#include "llvm/Remarks/RemarkStreamer.h"
#include "llvm/Transforms/IPO.h"
diff -ruN llvmlite-0.39.1.orig/ffi/targets.cpp llvmlite-0.39.1/ffi/targets.cpp
--- llvmlite-0.39.1.orig/ffi/targets.cpp 2022-09-01 13:47:22.449959300 +0000
+++ llvmlite-0.39.1/ffi/targets.cpp 2023-01-10 16:59:54.544810234 +0000
@@ -6,7 +6,7 @@
#include "llvm/IR/LegacyPassManager.h"
#include "llvm/IR/Type.h"
#include "llvm/Support/Host.h"
-#include "llvm/Support/TargetRegistry.h"
+#include "llvm/MC/TargetRegistry.h"
#include "llvm/Target/TargetMachine.h"

#include <cstdio>
@@ -204,7 +204,6 @@
rm = Reloc::DynamicNoPIC;

TargetOptions opt;
- opt.PrintMachineCode = PrintMC;
opt.MCOptions.ABIName = ABIName;

bool jit = JIT;
diff -ruN llvmlite-0.39.1.orig/ffi/value.cpp llvmlite-0.39.1/ffi/value.cpp
--- llvmlite-0.39.1.orig/ffi/value.cpp 2022-09-01 13:47:22.449959300 +0000
+++ llvmlite-0.39.1/ffi/value.cpp 2023-01-10 16:59:09.616162588 +0000
@@ -154,7 +154,7 @@
Argument *arg = unwrap<Argument>(A);
unsigned argno = arg->getArgNo();
AttributeSet attrs =
- arg->getParent()->getAttributes().getParamAttributes(argno);
+ arg->getParent()->getAttributes().getParamAttrs(argno);
return wrap(new AttributeSetIterator(attrs.begin(), attrs.end()));
}

diff -ruN llvmlite-0.39.1.orig/llvmlite/tests/test_binding.py llvmlite-0.39.1/llvmlite/tests/test_binding.py
--- llvmlite-0.39.1.orig/llvmlite/tests/test_binding.py 2022-09-01 13:47:22.481959000 +0000
+++ llvmlite-0.39.1/llvmlite/tests/test_binding.py 2023-01-10 17:00:04.868959051 +0000
@@ -18,6 +18,16 @@
from llvmlite.tests import TestCase


+def clean_string_whitespace(x: str) -> str:
+ # Remove trailing whitespace from the end of each line
+ x = re.sub(r"\s+$", "", x, flags=re.MULTILINE)
+ # Remove intermediate blank lines
+ x = re.sub(r"\n\s*\n", r"\n", x, flags=re.MULTILINE)
+ # Remove extraneous whitespace from the beginning and end of the string
+ x = x.strip()
+ return x
+
+
# arvm7l needs extra ABI symbols to link successfully
if platform.machine() == 'armv7l':
llvm.load_library_permanently('libgcc_s.so.1')
@@ -555,7 +565,10 @@
bd = ir.IRBuilder(fn.append_basic_block(name="<>!*''#"))
bd.ret(ir.Constant(ir.IntType(32), 12345))
asm = str(mod)
- self.assertEqual(asm, asm_nonalphanum_blocklabel)
+ self.assertEqual(
+ clean_string_whitespace(asm),
+ clean_string_whitespace(asm_nonalphanum_blocklabel)
+ )

def test_global_context(self):
gcontext1 = llvm.context.get_global_context()
@@ -640,7 +653,7 @@
def test_version(self):
major, minor, patch = llvm.llvm_version_info
# one of these can be valid
- valid = [(11,)]
+ valid = [(11,), (12,), (13,), (14,), (15,)]
self.assertIn((major,), valid)
self.assertIn(patch, range(10))
54 changes: 54 additions & 0 deletions 166_FragPipe/numba-0.58.1-foss-2022b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
easyblock = 'PythonBundle'

name = 'numba'
version = '0.58.1'

homepage = 'https://numba.pydata.org/'
description = """Numba is an Open Source NumPy-aware optimizing compiler for
Python sponsored by Continuum Analytics, Inc. It uses the remarkable LLVM
compiler infrastructure to compile Python syntax to machine code."""

toolchain = {'name': 'foss', 'version': '2022b'}
toolchainopts = {'pic': True}

dependencies = [
('Python', '3.10.8'),
('SciPy-bundle', '2023.02'),
('LLVM', '15.0.5'),
]

use_pip = True
sanity_pip_check = True

local_llvmlite_preinstallopts = "export LLVM_CONFIG=${EBROOTLLVM}/bin/llvm-config && "
local_llvmlite_preinstallopts += "export LLVMLITE_SKIP_LLVM_VERSION_CHECK=1 && "

exts_list = [
('llvmlite', '0.39.1', {
'preinstallopts': local_llvmlite_preinstallopts,
'patches': ['llvmlite-0.39.1_fix-LLVM-15.patch'],
'checksums': [
{'llvmlite-0.39.1.tar.gz': 'b43abd7c82e805261c425d50335be9a6c4f84264e34d6d6e475207300005d572'},
{'llvmlite-0.39.1_fix-LLVM-15.patch': 'c30d9827da278ea27a75b7fa29648227a874e21219c95156608e64d4533b9c36'},
],
}),
(name, version, {
'checksums': [
{'numba-0.58.1.tar.gz': '487ded0633efccd9ca3a46364b40006dbdaca0f95e99b8b83e778d1195ebcbaa'},
],
}),
]

fix_python_shebang_for = ['bin/*']

sanity_check_paths = {
'files': ['bin/numba', 'bin/pycc'],
'dirs': ['lib/python%(pyshortver)s/site-packages'],
}

sanity_check_commands = [
"python -m llvmlite.tests",
"numba --help",
]

moduleclass = 'lang'

0 comments on commit 8a410ba

Please sign in to comment.