diff --git a/Makefile b/Makefile
index 32403efa..7cdb2f39 100644
--- a/Makefile
+++ b/Makefile
@@ -16,13 +16,9 @@ test-cov: all
coverage xml
install: all
- bash install-pplacer.sh
- pip install git+https://github.com/Ecogenomics/CheckM.git@d74bb68d48b2318542eb7137343196d8e12b4fac
$(PYTHON) setup.py install
dev: all
- bash install-pplacer.sh
- pip install git+https://github.com/Ecogenomics/CheckM.git@d74bb68d48b2318542eb7137343196d8e12b4fac
pip install -e .
clean: distclean
diff --git a/ci/recipe/meta.yaml b/ci/recipe/meta.yaml
index 8f89774e..797a9c75 100644
--- a/ci/recipe/meta.yaml
+++ b/ci/recipe/meta.yaml
@@ -9,9 +9,7 @@ source:
path: ../..
build:
- script: |
- make VERBOSE=1
- make install
+ script: make install
requirements:
host:
@@ -19,27 +17,18 @@ requirements:
- setuptools
run:
- - altair
- - hmmer
- - matplotlib
- metabat2
- - numpy
- - prodigal
- - pysam
- samtools
- qiime2 {{ qiime2_epoch }}.*
- q2-types-genomics {{ qiime2_epoch }}.*
- - q2templates {{ qiime2_epoch }}.*
test:
requires:
- coverage
- pytest-cov
-
imports:
- q2_moshpit
- qiime2.plugins.moshpit
-
commands:
- pytest --cov q2_moshpit --pyargs q2_moshpit
diff --git a/install-pplacer.sh b/install-pplacer.sh
deleted file mode 100755
index 80f2c117..00000000
--- a/install-pplacer.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/env bash
-
-if [[ "$OSTYPE" == "darwin"* ]]; then
- DOWNLOAD_URL="https://github.com/matsen/pplacer/releases/download/v1.1.alpha17/pplacer-Darwin-v1.1.alpha17.zip"
-elif [[ "$OSTYPE" == "linux"* ]]; then
- DOWNLOAD_URL="https://github.com/matsen/pplacer/releases/download/v1.1.alpha17/pplacer-Linux-v1.1.alpha17.zip"
-else
- echo "Detected OS version (${OSTYPE}) is not supported. Aborting."
- exit 1
-fi
-
-echo "Fetching pplacer binaries from ${DOWNLOAD_URL}..."
-curl -L "${DOWNLOAD_URL}" > pplacer.zip
-
-echo "Extracting..."
-unzip pplacer.zip
-rm pplacer.zip
-
-if [[ "$PREFIX" == "" ]]; then
- echo "Setting PREFIX=$CONDA_PREFIX"
- PREFIX="$CONDA_PREFIX"
-fi
-
-echo "Installing pplacer in $PREFIX..."
-if [[ ! -d "$PREFIX/bin/" ]]; then
- mkdir $PREFIX/bin/
-fi
-mv pplacer*/guppy $PREFIX/bin/
-mv pplacer*/pplacer $PREFIX/bin/
-mv pplacer*/rppr $PREFIX/bin/
-
-mkdir $PREFIX/bin/scripts/
-mv pplacer*/scripts/* $PREFIX/bin/scripts/
-rm -r pplacer*
-
-echo "Testing installation..."
-if [[ $(which pplacer) == "$PREFIX/bin"* ]]; then
- echo "Success!"
-# TODO: make sure later that this really is not necessary (try to install with conda on macOS and Ubuntu)
-# pplacer --version
-# retVal=$?
-# if [[ $retVal -ne 0 ]]; then
-# echo "pplacer was installed in the correct location but there was a problem with the installation."
-# echo "See below for the potential error message:"
-# pplacer --version
-# exit 1
-# else
-# echo "Success!"
-# fi
-else
- echo "Installation failed."
- exit 1
-fi
diff --git a/q2_moshpit/__init__.py b/q2_moshpit/__init__.py
index 09fd9e31..da15f617 100644
--- a/q2_moshpit/__init__.py
+++ b/q2_moshpit/__init__.py
@@ -6,11 +6,10 @@
# The full license is in the file LICENSE, distributed with this software.
# ----------------------------------------------------------------------------
-from .checkm import checkm
from .metabat2 import metabat2
from ._version import get_versions
__version__ = get_versions()['version']
del get_versions
-__all__ = ['checkm', 'metabat2']
+__all__ = ['metabat2']
diff --git a/q2_moshpit/_action_params.py b/q2_moshpit/_action_params.py
deleted file mode 100644
index ffdde5e4..00000000
--- a/q2_moshpit/_action_params.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# ----------------------------------------------------------------------------
-# Copyright (c) 2022, QIIME 2 development team.
-#
-# Distributed under the terms of the Modified BSD License.
-#
-# The full license is in the file LICENSE, distributed with this software.
-# ----------------------------------------------------------------------------
-
-from qiime2.core.type import Bool, Int, Range, Float, Str
-
-checkm_params = {
- 'db_path': Str,
- 'reduced_tree': Bool,
- 'unique': Int % Range(1, None),
- 'multi': Int % Range(1, None),
- 'force_domain': Bool,
- 'no_refinement': Bool,
- 'individual_markers': Bool,
- 'skip_adj_correction': Bool,
- 'skip_pseudogene_correction': Bool,
- 'aai_strain': Float % Range(0, 1),
- 'ignore_thresholds': Bool,
- 'e_value': Float % Range(0, 1),
- 'length': Float % Range(0, 1),
- 'threads': Int % Range(1, None),
- 'pplacer_threads': Int % Range(1, None)
-}
-
-checkm_param_descriptions = {
- 'db_path': 'Path to the database required by CheckM. For more '
- 'details see: https://github.com/Ecogenomics/CheckM/'
- 'wiki/Installation#required-reference-data.',
- 'reduced_tree': 'Use reduced tree (requires <16GB of memory) for '
- 'determining lineage of each bin.',
- 'unique': 'Minimum number of unique phylogenetic markers required to use '
- 'lineage-specific marker set. Default: 10.',
- 'multi': 'Maximum number of multi-copy phylogenetic markers before '
- 'defaulting to domain-level marker set. Default: 10.',
- 'force_domain': 'Use domain-level sets for all bins.',
- 'no_refinement': 'Do not perform lineage-specific marker set refinement.',
- 'individual_markers': 'Treat marker as independent '
- '(i.e., ignore co-located set structure).',
- 'skip_adj_correction': 'Do not exclude adjacent marker genes when '
- 'estimating contamination.',
- 'skip_pseudogene_correction': 'Skip identification and filtering '
- 'of pseudogenes.',
- 'aai_strain': 'AAI threshold used to identify strain heterogeneity. '
- 'Default: 0.9.',
- 'ignore_thresholds': 'Ignore model-specific score thresholds.',
- 'e_value': 'E-value cut off. Default: 1e-10.',
- 'length': 'Percent overlap between target and query. Default: 0.7.',
- 'threads': 'Number of threads. Default: 1.',
- 'pplacer_threads': 'Number of threads used by pplacer (memory usage '
- 'increases linearly with additional threads). '
- 'Default: 1.'
-}
diff --git a/q2_moshpit/assets/checkm/css/styles.css b/q2_moshpit/assets/checkm/css/styles.css
deleted file mode 100644
index 433d6f7d..00000000
--- a/q2_moshpit/assets/checkm/css/styles.css
+++ /dev/null
@@ -1,20 +0,0 @@
-#plot {
- margin-top: 50px;
-}
-
-.vega-bind {
- margin-bottom: 15px;
-}
-
-.vega-bind-name {
- margin-right: 10px;
- white-space: nowrap
-}
-
-.header-inline {
- display: inline-block;
- float: left;
- margin-right: 10px;
- margin-top: 8px;
- margin-bottom: 8px;
-}
diff --git a/q2_moshpit/assets/checkm/gc_plots.html b/q2_moshpit/assets/checkm/gc_plots.html
deleted file mode 100644
index d3c06158..00000000
--- a/q2_moshpit/assets/checkm/gc_plots.html
+++ /dev/null
@@ -1,132 +0,0 @@
-{% extends 'tabbed.html' %}
-
-{% block tabcontent %}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {% if plots_gc is defined %}
-
- {% endif %}
-
- {% if plots_coding is defined %}
-
- {% endif %}
-
- {% if plots_nx is defined %}
-
- {% endif %}
-
- {% if samples is defined %}
-
- {% endif %}
-
- {% if plots_per_sample is defined %}
-
- {% endif %}
-
-
-
-{% endblock %}
-
-{% block footer %}
-{% set loading_selector = '#loading' %}
-{% include 'js-error-handler.html' %}
-
-{% endblock %}
diff --git a/q2_moshpit/assets/checkm/index.html b/q2_moshpit/assets/checkm/index.html
deleted file mode 100644
index 7f2b3d55..00000000
--- a/q2_moshpit/assets/checkm/index.html
+++ /dev/null
@@ -1,116 +0,0 @@
-{% extends 'tabbed.html' %}
-
-{% block head %}
-Embedding Vega-Lite
-
-
-
-
-
-
-
-{% endblock %}
-
-{% block tabcontent %}
-
-
-
-
-
-
-
-
- All plots shown on this page display statistics generated
- by CheckM
- for all the bins from all the samples . To see
- a subset of bins based
- e.g. on completeness and/or contamination simply draw a
- rectangle
- surrounding the desired points in one of the two scatter
- plots - the
- corresponding bars will be shown in bottom plots and the
- other samples
- will be grayed out.
-
-
-
-
-
-
-
-
-
-
- {% if vega_plots_overview is defined %}
-
- {% else %}
-
Unable to generate the completeness plot
- {% endif %}
-
-
-{% if vega_plots_overview is defined %}
-
-
-
-
-{% endif %}
-
-{% endblock %}
-
-{% block footer %}
-{% set loading_selector = '#loading' %}
-{% include 'js-error-handler.html' %}
-{% endblock %}
diff --git a/q2_moshpit/assets/checkm/js/bootstrapMagic.js b/q2_moshpit/assets/checkm/js/bootstrapMagic.js
deleted file mode 100644
index 2323fe92..00000000
--- a/q2_moshpit/assets/checkm/js/bootstrapMagic.js
+++ /dev/null
@@ -1,31 +0,0 @@
-function removeBS3refs() {
- // remove Bootstrap 3 CSS/JS reference
- let head = document.getElementsByTagName("head")[0]
- let links = head.getElementsByTagName("link")
- for (let i = 0; i < links.length; i++) {
- if (links[i].href.includes("q2templateassets/css/bootstrap")) {
- links[i].remove()
- }
- }
- let scripts = head.getElementsByTagName("script")
- for (let i = 0; i < scripts.length; i++) {
- if (scripts[i].src.includes("q2templateassets/js/bootstrap")) {
- scripts[i].remove()
- }
- }
-}
-
-function adjustTagsToBS3() {
- // adjust tags to BS3
- let tabs = document.getElementsByClassName("nav nav-tabs")[0].children
- for (let i = 0; i < tabs.length; i++) {
- let isActive = tabs[i].className.includes("active")
- tabs[i].className = "nav-item"
- let link = tabs[i].getElementsByTagName("a")[0]
- if (isActive) {
- link.classList.add("active")
- }
- link.classList.add("nav-link")
-
- }
-}
diff --git a/q2_moshpit/assets/checkm/sample_details.html b/q2_moshpit/assets/checkm/sample_details.html
deleted file mode 100644
index 30a2a83d..00000000
--- a/q2_moshpit/assets/checkm/sample_details.html
+++ /dev/null
@@ -1,130 +0,0 @@
-{% extends 'tabbed.html' %}
-
-{% block head %}
-Embedding Vega-Lite
-
-
-
-
-
-
-
-{% endblock %}
-
-{% block tabcontent %}
-
-
-
-
-
-
-
-
- All plots shown on this page display statistics generated
- by CheckM
- for all the bins from a single sample (you
- can use the
- dropdown in the box below). To see a subset of bins based
- e.g. on completeness and/or contamination simply draw a
- rectangle
- surrounding the desired points in one of the scatter plots
- - the
- corresponding bars will be shown in bottom plots and the
- other bins
- will be grayed out.
-
-
-
-
-
-
-
-
-
-
-
- {% if vega_plots_detailed is defined %}
-
- {% else %}
-
Unable to generate the completeness plot
- {% endif %}
-
-
-{% if vega_plots_detailed is defined %}
-
-
-
-
-{% endif %}
-
-{% endblock %}
-
-{% block footer %}
-{% set loading_selector = '#loading' %}
-{% include 'js-error-handler.html' %}
-{% endblock %}
diff --git a/q2_moshpit/assets/checkm/vega/css/spinkit.css b/q2_moshpit/assets/checkm/vega/css/spinkit.css
deleted file mode 100644
index 43c71f8c..00000000
--- a/q2_moshpit/assets/checkm/vega/css/spinkit.css
+++ /dev/null
@@ -1,64 +0,0 @@
-/* SPINKIT */
-/*
-The MIT License (MIT)
-Copyright (c) 2015 Tobias Ahlin
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-.spinner {
- margin: 100px auto;
- width: 50px;
- height: 40px;
- text-align: center;
- font-size: 10px;
-}
-.spinner > div {
- background-color: #333;
- height: 100%;
- width: 6px;
- display: inline-block;
- -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out;
- animation: sk-stretchdelay 1.2s infinite ease-in-out;
-}
-.spinner .rect2 {
- -webkit-animation-delay: -1.1s;
- animation-delay: -1.1s;
-}
-.spinner .rect3 {
- -webkit-animation-delay: -1.0s;
- animation-delay: -1.0s;
-}
-.spinner .rect4 {
- -webkit-animation-delay: -0.9s;
- animation-delay: -0.9s;
-}
-.spinner .rect5 {
- -webkit-animation-delay: -0.8s;
- animation-delay: -0.8s;
-}
-@-webkit-keyframes sk-stretchdelay {
- 0%, 40%, 100% { -webkit-transform: scaleY(0.4) }
- 20% { -webkit-transform: scaleY(1.0) }
-}
-@keyframes sk-stretchdelay {
- 0%, 40%, 100% {
- transform: scaleY(0.4);
- -webkit-transform: scaleY(0.4);
- } 20% {
- transform: scaleY(1.0);
- -webkit-transform: scaleY(1.0);
- }
-}
diff --git a/q2_moshpit/assets/checkm/vega/js/vega-embed.min.js b/q2_moshpit/assets/checkm/vega/js/vega-embed.min.js
deleted file mode 100644
index ebc7f96b..00000000
--- a/q2_moshpit/assets/checkm/vega/js/vega-embed.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vega-lib"),require("vega-lite")):"function"==typeof define&&define.amd?define(["vega-lib","vega-lite"],t):e.vegaEmbed=t(e.vega,e.vl)}(this,function(e,t){"use strict";function n(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),dt.hasOwnProperty(t)?{space:dt[t],local:e}:e}function r(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===ht&&t.documentElement.namespaceURI===ht?t.createElement(e):t.createElementNS(n,e)}}function i(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function o(e){var t=n(e);return(t.local?i:r)(t)}function a(){}function s(e){return null==e?a:function(){return this.querySelector(e)}}function l(e){"function"!=typeof e&&(e=s(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i=k&&(k=_+1);!(x=y[k])&&++k=0;)(r=i[o])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this}function k(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=S);for(var n=this._groups,r=n.length,i=new Array(r),o=0;ot?1:e>=t?0:NaN}function j(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function E(){var e=new Array(this.size()),t=-1;return this.each(function(){e[++t]=this}),e}function C(){for(var e=this._groups,t=0,n=e.length;t1?this.each((null==t?L:"function"==typeof t?$:B)(e,t,null==n?"":n)):V(this.node(),e)}function V(e,t){return e.style.getPropertyValue(t)||W(e).getComputedStyle(e,null).getPropertyValue(t)}function q(e){return function(){delete this[e]}}function H(e,t){return function(){this[e]=t}}function U(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function J(e,t){return arguments.length>1?this.each((null==t?q:"function"==typeof t?U:H)(e,t)):this.node()[e]}function X(e){return e.trim().split(/^|\s+/)}function G(e){return e.classList||new Y(e)}function Y(e){this._node=e,this._names=X(e.getAttribute("class")||"")}function Z(e,t){for(var n=G(e),r=-1,i=t.length;++r=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function Ce(e){return function(){var t=this.__on;if(t){for(var n,r=0,i=-1,o=t.length;rn&&t(),s=n=r+1):"]"===i&&(s||We("Access path missing open bracket: "+e),s>0&&t(),s=0,n=r+1):r>n?t():n=r+1}return s&&We("Access path missing closing bracket: "+e),a&&We("Access path missing closing quote: "+e),r>n&&(r++,t()),o}function Be(e){return e===Object(e)}function $e(e){return"string"==typeof e}function Me(e){return kt(e)?"["+e.map(Me)+"]":Be(e)||$e(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function Ve(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,r=Object.getOwnPropertySymbols(e);i0&&a[a.length-1])&&(6===n[0]||2===n[0])){l=0;continue}if(3===n[0]&&(!a||n[1]>a[0]&&n[1]0)return[u[0],n+p.join(",\n"+f),u[1]].join("\n"+o)}return s}(e,"",0)}function Je(e,t){var n=t?" ":"",r={"{":"{"+n,"[":"["+n,"}":n+"}","]":n+"]",",":", ",":":": "};return e.replace(Ft,function(e,t){return t?e:r[e]})}function Xe(e,t,n){return t in e?e[t]:n}function Ge(e,t){return t={exports:{}},e(t,t.exports),t.exports}function Ye(e){return String(e).replace(/&/g,"&").replace(/"+t(o)+"");var s=Object.keys(a);if(s.length>0){r+=" ";for(var l=0,c=s;l'+t(u)+': '+t(f)+" "}r+="
"}return r||"{}"}return t(e)}function Qe(e){var t=[];return function(n,r){if("object"!=typeof r||null===r)return r;var i=t.indexOf(this)+1;return t.length=i,t.length>e?"[Object]":t.indexOf(r)>=0?"[Circular]":(t.push(r),r)}}function et(e,t){return JSON.stringify(e,Qe(t))}function tt(e,t,n,r){var i=e.clientX+n;i+t.width>window.innerWidth&&(i=+e.clientX-n-t.width);var o=e.clientY+r;return o+t.height>window.innerHeight&&(o=+e.clientY-r-t.height),{x:i,y:o}}function nt(e,t,n){function r(t){t.source===o&&(s=0,e.removeEventListener("message",r,!1))}function i(){s<=0||(o.postMessage(n,"*"),setTimeout(i,a),s-=1)}var o=e.open(t),a=250,s=~~(1e4/a);e.addEventListener("message",r,!1),setTimeout(i,a)}function rt(e){for(var t=[],n=1;n',o="
"+n+"