aboutsummaryrefslogtreecommitdiff
path: root/biology
diff options
context:
space:
mode:
authorJason W. Bacon <jwb@FreeBSD.org>2019-09-23 16:09:30 +0000
committerJason W. Bacon <jwb@FreeBSD.org>2019-09-23 16:09:30 +0000
commit490aa151f9c4014d610ccb18e295815e7cd4e624 (patch)
treeeb3ea36aa18fde10063ad0c1f763863c124f66a5 /biology
parentf4a88d048118f4f7024dfaabc7f23bad5e29aeda (diff)
downloadports-490aa151f9c4014d610ccb18e295815e7cd4e624.tar.gz
ports-490aa151f9c4014d610ccb18e295815e7cd4e624.zip
biology/py-multiqc: Aggregate bioinformatics analysis reports
MultiQC searches a given directory for analysis logs and compiles an HTML report. It's a general use tool, perfect for summarising the output from numerous bioinformatics tools.
Notes
Notes: svn path=/head/; revision=512646
Diffstat (limited to 'biology')
-rw-r--r--biology/Makefile1
-rw-r--r--biology/py-multiqc/Makefile36
-rw-r--r--biology/py-multiqc/distinfo3
-rw-r--r--biology/py-multiqc/files/patch-multiqc_utils_config.py41
-rw-r--r--biology/py-multiqc/files/patch-scripts_multiqc32
-rw-r--r--biology/py-multiqc/pkg-descr5
6 files changed, 118 insertions, 0 deletions
diff --git a/biology/Makefile b/biology/Makefile
index d7a91dfaf6e8..5e5cd3313b57 100644
--- a/biology/Makefile
+++ b/biology/Makefile
@@ -128,6 +128,7 @@
SUBDIR += py-gtfparse
SUBDIR += py-loompy
SUBDIR += py-macs2
+ SUBDIR += py-multiqc
SUBDIR += py-orange3-bioinformatics
SUBDIR += py-orange3-single-cell
SUBDIR += py-pyfaidx
diff --git a/biology/py-multiqc/Makefile b/biology/py-multiqc/Makefile
new file mode 100644
index 000000000000..ff2051382123
--- /dev/null
+++ b/biology/py-multiqc/Makefile
@@ -0,0 +1,36 @@
+# $FreeBSD$
+
+PORTNAME= multiqc
+DISTVERSION= 1.7
+CATEGORIES= biology python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= jwb@FreeBSD.org
+COMMENT= Aggregate bioinformatics analysis reports across samples and tools
+
+LICENSE= GPLv3
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+RUN_DEPENDS= ${PYNUMPY} \
+ ${PYTHON_PKGNAMEPREFIX}click>0:devel/py-click@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}future>0.14.0:devel/py-future@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}matplotlib>=2.1.1:math/py-matplotlib@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}markdown>0:textproc/py-markdown@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}yaml>0:devel/py-yaml@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}requests>:www/py-requests@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}simplejson>0:devel/py-simplejson@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}Jinja2>=2.9:devel/py-Jinja2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}lzstring>0:archivers/py-lzstring@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}spectra>=0.0.10:graphics/py-spectra@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}colormath>0:math/py-colormath@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist concurrent distutils
+
+NO_ARCH= yes
+
+post-patch:
+ @${RM} ${WRKSRC}/multiqc/utils/config.py.orig
+
+.include <bsd.port.mk>
diff --git a/biology/py-multiqc/distinfo b/biology/py-multiqc/distinfo
new file mode 100644
index 000000000000..adbaecddc9c9
--- /dev/null
+++ b/biology/py-multiqc/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1569116068
+SHA256 (multiqc-1.7.tar.gz) = 02e6a7fac7cd9ed036dcc6c92b8f8bcacbd28983ba6be53afb35e08868bd2d68
+SIZE (multiqc-1.7.tar.gz) = 1168389
diff --git a/biology/py-multiqc/files/patch-multiqc_utils_config.py b/biology/py-multiqc/files/patch-multiqc_utils_config.py
new file mode 100644
index 000000000000..707b510672f0
--- /dev/null
+++ b/biology/py-multiqc/files/patch-multiqc_utils_config.py
@@ -0,0 +1,41 @@
+--- multiqc/utils/config.py.orig 2019-09-22 13:24:47 UTC
++++ multiqc/utils/config.py
+@@ -42,13 +42,13 @@ MULTIQC_DIR = os.path.dirname(os.path.realpath(inspect
+ # Default MultiQC config
+ searchp_fn = os.path.join( MULTIQC_DIR, 'utils', 'config_defaults.yaml')
+ with open(searchp_fn) as f:
+- configs = yaml.load(f)
++ configs = yaml.load(f, Loader=yaml.FullLoader)
+ for c, v in configs.items():
+ globals()[c] = v
+ # Module filename search patterns
+ searchp_fn = os.path.join( MULTIQC_DIR, 'utils', 'search_patterns.yaml')
+ with open(searchp_fn) as f:
+- sp = yaml.load(f)
++ sp = yaml.load(f, Loader=yaml.FullLoader)
+
+ # Other defaults that can't be set in YAML
+ data_tmp_dir = '/tmp' # will be overwritten by core script
+@@ -118,7 +118,7 @@ def mqc_load_config(yaml_config):
+ if os.path.isfile(yaml_config):
+ try:
+ with open(yaml_config) as f:
+- new_config = yaml.load(f)
++ new_config = yaml.load(f, Loader=yaml.FullLoader)
+ logger.debug("Loading config settings from: {}".format(yaml_config))
+ mqc_add_config(new_config, yaml_config)
+ except (IOError, AttributeError) as e:
+@@ -132,11 +132,11 @@ def mqc_load_config(yaml_config):
+ def mqc_cl_config(cl_config):
+ for clc_str in cl_config:
+ try:
+- parsed_clc = yaml.load(clc_str)
++ parsed_clc = yaml.load(clc_str, Loader=yaml.FullLoader)
+ # something:var fails as it needs a space. Fix this (a common mistake)
+ if isinstance(parsed_clc, str) and ':' in clc_str:
+ clc_str = ': '.join(clc_str.split(':'))
+- parsed_clc = yaml.load(clc_str)
++ parsed_clc = yaml.load(clc_str, Loader=yaml.FullLoader)
+ assert(isinstance(parsed_clc, dict))
+ except yaml.scanner.ScannerError as e:
+ logger.error("Could not parse command line config: {}\n{}".format(clc_str, e))
diff --git a/biology/py-multiqc/files/patch-scripts_multiqc b/biology/py-multiqc/files/patch-scripts_multiqc
new file mode 100644
index 000000000000..34eef2e89279
--- /dev/null
+++ b/biology/py-multiqc/files/patch-scripts_multiqc
@@ -0,0 +1,32 @@
+--- scripts/multiqc.orig 2018-12-21 17:29:54 UTC
++++ scripts/multiqc
+@@ -6,18 +6,26 @@
+ from __future__ import print_function
+
+ import base64
+-import click
++import os
++import sys
++
++if 'LC_ALL' in os.environ and 'LANG' in os.environ:
++ import click
++else:
++ print('multiqc: LC_ALL and LANG must be set to a UTF-8 character set')
++ print('in your environment in order for the click module to function.')
++ print('E.g. export LC_ALL=en_US.UTF-8 or setenv LC_ALL en_US.UTF-8')
++ sys.exit()
++
+ from distutils import version
+ from distutils.dir_util import copy_tree
+ import errno
+ import io
+ import jinja2
+-import os
+ import pkg_resources
+ import re
+ import shutil
+ import subprocess
+-import sys
+ import tempfile
+ import traceback
+
diff --git a/biology/py-multiqc/pkg-descr b/biology/py-multiqc/pkg-descr
new file mode 100644
index 000000000000..399f8a41c313
--- /dev/null
+++ b/biology/py-multiqc/pkg-descr
@@ -0,0 +1,5 @@
+MultiQC searches a given directory for analysis logs and compiles an HTML
+report. It's a general use tool, perfect for summarising the output from
+numerous bioinformatics tools.
+
+WWW: https://pypi.python.org/pypi/multiqc