Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{bio}[foss/2020b] LncLOOM v2.0, MAFFT v7.475 #12287

Merged
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions easybuild/easyconfigs/g/Gurobi/Gurobi-9.1.1-GCCcore-10.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name = 'Gurobi'
version = '9.1.1'

homepage = 'https://www.gurobi.com'
description = """The Gurobi Optimizer is a state-of-the-art solver for mathematical programming.
The solvers in the Gurobi Optimizer were designed from the ground up to exploit modern
architectures and multi-core processors, using the most advanced implementations of the
latest algorithms."""

toolchain = {'name': 'GCCcore', 'version': '10.2.0'}

source_urls = ['https://packages.gurobi.com/%(version_major_minor)s/']
sources = ['%(namelower)s%(version)s_linux64.tar.gz']
checksums = ['ba57a83656bf6ab481e1114f5596664385a88a35a47ae51aa2ac307f58aaa44a']

builddependencies = [
('binutils', '2.35'),
]

dependencies = [
('Python', '3.8.6'),
]

license_file = HOME + '/licenses/%(name)s/%(namelower)s.lic'

zarybnicky marked this conversation as resolved.
Show resolved Hide resolved
moduleclass = 'math'
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
Specify for_eclip_annotation.txt/for_track_annotation.txt via the environment
variables LNCLOOM_ECLIP_CONFIG/LNCLOOM_TRACK_CONFIG instead of hardcoded paths.

Relax biopython dependency (<= 1.78).

Author: Jakub Zárybnický <jakub@zarybnicky.com>

diff -ru LncLOOMv2/LncLOOMv2/LncLOOM.py LncLOOMv2-edit/LncLOOMv2/LncLOOM.py
--- LncLOOMv2/LncLOOMv2/LncLOOM.py 2021-02-18 10:45:46.000000000 +0100
+++ LncLOOMv2-edit/LncLOOMv2/LncLOOM.py 2021-03-01 14:06:44.600554538 +0100
@@ -115,14 +115,24 @@


if args.eclip== True:
- efile = os.path.join(os.path.dirname(__file__), 'src', 'for_eclip_annotation.txt')
+ try:
+ efile = os.environ['LNCLOOM_ECLIP_CONFIG']
+ except KeyError:
+ print('To use --eclip, specify a config file via the '
+ 'LNCLOOM_ECLIP_CONFIG environment variable')
+ exit()
if not os.path.exists(str(efile)):
print("ERROR! Cannot find src file:"+str(efile))
Valid = False

if args.track == True:
#check bedfile_output.txt is found
- tfile = os.path.join(os.path.dirname(__file__), 'src', 'for_track_output.txt')
+ try:
+ tfile = os.environ['LNCLOOM_TRACK_CONFIG']
+ except KeyError:
+ print('To use --track, specify a config file via the '
+ 'LNCLOOM_TRACK_CONFIG environment variable')
+ exit()
if not os.path.exists(tfile):
print("ERROR! Cannot find src file:for_track_output.txt")
Valid = False
@@ -276,7 +286,12 @@
track_bed = ''
format_file = True
if track ==True:
- tfile = os.path.join(os.path.dirname(__file__), 'src', 'for_track_output.txt')
+ try:
+ tfile = os.environ['LNCLOOM_TRACK_CONFIG']
+ except KeyError:
+ print('To use --track, specify a config file via the '
+ 'LNCLOOM_TRACK_CONFIG environment variable')
+ exit()
b = open(tfile,'r')
blines = b.readlines()
b.close()
@@ -420,7 +435,12 @@
#Annotate eCLIP: here we are annotating and creating tables for all combined and sub-kmers in the selected query layer.
#This only needs to be done once, as the annotations for all k-mers will be stored - loop not needed here
if eCLIP==True:
- efile = os.path.join(os.path.dirname(__file__), 'src', 'for_eclip_annotation.txt')
+ try:
+ efile = os.environ['LNCLOOM_ECLIP_CONFIG']
+ except KeyError:
+ print('To use --eclip, specify a config file via the '
+ 'LNCLOOM_ECLIP_CONFIG environment variable')
+ exit()
e = open(efile,'r')
elines = e.readlines()
e.close()
diff -ru LncLOOMv2/setup.py LncLOOMv2-edit/setup.py
--- LncLOOMv2/setup.py 2021-02-18 10:45:46.000000000 +0100
+++ LncLOOMv2-edit/setup.py 2021-03-01 14:01:42.430780746 +0100
@@ -10,7 +10,7 @@
packages=find_packages(include=['LncLOOMv2', 'LncLOOMv2.*']),
install_requires=[
'networkx',
- 'numpy>=1.14.5','biopython<=1.76','pulp','pyBigWig'
+ 'numpy>=1.14.5','biopython<=1.78','pulp','pyBigWig'
],

entry_points={
71 changes: 71 additions & 0 deletions easybuild/easyconfigs/l/LncLOOM/LncLOOM-2.0-foss-2020b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
easyblock = 'PythonBundle'

name = 'LncLOOM'
version = '2.0'

homepage = 'https://github.com/lncLOOM/lncLOOMv2/'
description = """LncLOOM is a graph-based framework that uses integer
programming to identify combinations of short motifs that are deeply conserved
in rapidly evolving sequences."""

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

dependencies = [
('Python', '3.8.6'),
('SciPy-bundle', '2020.11'),
('MAFFT', '7.475', '-with-extensions'),
('BLAST+', '2.11.0'),
('Gurobi', '9.1.1'),
('Biopython', '1.78'),
]

use_pip = True

exts_default_options = {'source_urls': [PYPI_SOURCE]}
exts_list = [
('amply', '0.1.4', {
'checksums': ['cb12dcb49d16b168c02be128a1527ecde50211e4bd94af76ff4e67707f5a2d38'],
}),
('networkx', '2.5', {
zarybnicky marked this conversation as resolved.
Show resolved Hide resolved
'checksums': ['7978955423fbc9639c10498878be59caf99b44dc304c2286162fd24b458c1602'],
}),
('PuLP', '2.4', {
'source_tmpl': '%(version)s.tar.gz',
'source_urls': ['https://github.com/coin-or/pulp/archive/'],
'checksums': ['d52d52b6078ea2c503b33814738866902d661cfe60d7a76251d50423e4af3ad0'],
}),
('pyBigWig', '0.3.18', {
zarybnicky marked this conversation as resolved.
Show resolved Hide resolved
'modulename': 'pyBigWig',
'checksums': ['4c2a8c571b4100ad7c4c318c142eb48558646be52aaab28215a70426f5be31bc'],
}),
(name, version, {
'modulename': 'LncLOOMv2',
'patches': ['LncLOOM-2.0-config-from-environment.patch'],
'source_tmpl': '75b82aeb359b65998770577e7516ed54845ba66c.tar.gz',
'source_urls': ['https://github.com/lncLOOM/LncLOOMv2/archive/'],
'checksums': [
# 75b82aeb359b65998770577e7516ed54845ba66c.tar.gz
'cc00beec1ddfc879c94948d9e7b7736b2b5156617b8724927d7459e6b88d0e59',
# LncLOOM-2.0-config-from-environment.patch
'bd8f13af556efe062e70ca06805fb0d1a6046bd50a59eaf69fb0014a844f169d',
],
}),
]

postinstallcmds = [
'chmod +x %(installdir)s/lib/python%(pyshortver)s/site-packages/LncLOOMv2/src/blat',
'find %(installdir)s/lib/python%(pyshortver)s/site-packages/pulp/'
' -executable -type f -exec chmod +x {} \\;',
]

sanity_pip_check = True
sanity_check_paths = {
'files': ['bin/LncLOOM'],
'dirs': ['lib/python%(pyshortver)s/site-packages/LncLOOMv2'],
}
sanity_check_commands = [
'pulptest',
'LncLOOM --help',
]

moduleclass = 'bio'
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
easyblock = 'Bundle'

name = 'MAFFT'
version = '7.475'
versionsuffix = '-with-extensions'

homepage = 'https://mafft.cbrc.jp/alignment/software/source.html'
description = """MAFFT is a multiple sequence alignment program for unix-like operating systems.
It offers a range of multiple alignment methods, L-INS-i (accurate; for alignment
of <∼200 sequences), FFT-NS-2 (fast; for alignment of <∼30,000 sequences), etc."""

toolchain = {'name': 'gompi', 'version': '2020b'}
toolchainopts = {'usempi': True}

default_easyblock = 'ConfigureMake'
default_component_specs = {
'source_urls': ['https://mafft.cbrc.jp/alignment/software/'],
'sources': ['mafft-%(version)s%(versionsuffix)s-src.tgz'],
'checksums': ['bb6973ae089ea18cfbd3861a5b9d2c8b7e1543a1fdc78ac2d7cd8dbe3443f319'],
'skipsteps': ['configure'],
'installopts': 'PREFIX=%(installdir)s',
}

components = [
(name, version, {
'start_dir': 'mafft-%(version)s%(versionsuffix)s/core',
}),
('%s Extensions' % name, version, {
'start_dir': 'mafft-%(version)s%(versionsuffix)s/extensions',
}),
('%s MPI' % name, version, {
'start_dir': 'mafft-%(version)s%(versionsuffix)s/MPI',
}),
]

sanity_check_paths = {
'files': ['bin/mafft'] + ['libexec/mafft/%s' % x for x in [
'mxscarnamod', # installed by MAFFT Extensions
'mpiscript', 'nodepair_mpi', # installed by MAFFT MPI
]],
'dirs': ['libexec/mafft'],
}

sanity_check_commands = ['mafft --version']

modextrapaths = {'MAFFT_BINARIES': 'libexec/mafft'}

modextravars = {'MAFFT_N_THREADS_PER_PROCESS': '1'}
# MAFFT MPI requires other environment variables that depend on job resources
# More information at at https://mafft.cbrc.jp/alignment/software/mpi.html

moduleclass = 'bio'