diff --git a/tools/fragpipe/fragpipe b/tools/fragpipe/fragpipe new file mode 100755 index 000000000..721b17cfc --- /dev/null +++ b/tools/fragpipe/fragpipe @@ -0,0 +1,65 @@ +#!/bin/bash + +# Modified version of the Bioconda wrapper of the script for command-line FragPipe, calling a local link to fragpipe instead of the version in $CONDA_PREFIX. +# Ensures the user agrees to MSFragger and IonQuant academic licenses. + +license_agreement_text=' +Please accept the academic license. + +FragPipe uses tools that are available freely for academic research and educational purposes only. + +Please provide license keys for MSFragger and IonQuant with the --msfragger_key and --ionquant_key flags. By passing these, you verify that you have read the ACADEMIC licenses for the MSFragger and IonQuant tools. You may obtain these keys by agreeing to the terms at http://msfragger-upgrader.nesvilab.org/upgrader/ and https://msfragger.arsci.com/ionquant/.' + +declare -a fragpipe_args + +while [[ $# -gt 0 ]]; do + case "$1" in + --msfragger_key) + shift + msfragger_key=$1 + ;; + --ionquant_key) + shift + ionquant_key=$1 + ;; + --workflow) + fragpipe_args+=("$1") + shift + workflow_file="$1" + fragpipe_args+=("$1") + ;; + *) + fragpipe_args+=("$1") + ;; + esac + shift +done + +if [[ ! -z "$workflow_file" ]]; then + # Because the DIA-NN license is incompatible with bioconda, we remove the feature. + grep 'diann.run-dia-nn=true' "$workflow_file" >/dev/null + if [[ $? -eq 0 ]]; then + echo "Error: DIA-NN is disabled in the FragPipe bioconda package." + exit 1 + fi +fi + +if [[ -z $msfragger_key || -z $ionquant_key ]]; then + echo "$license_agreement_text" + exit 1 +else + msfragger --key $msfragger_key --help | grep 'License key verified' >/dev/null 2>&1 + if [[ $? -ne 0 ]]; then + echo "Error: Invalid MSFragger license key" + echo "$license_agreement_text" + exit 1 + fi + ionquant --key $ionquant_key --help | grep 'License key verified' >/dev/null 2>&1 + if [[ $? -ne 0 ]]; then + echo "Error: Invalid IonQuant license key" + echo "$license_agreement_text" + exit 1 + fi +fi + +sh fragpipe_local/bin/fragpipe "${fragpipe_args[@]}" diff --git a/tools/fragpipe/fragpipe.xml b/tools/fragpipe/fragpipe.xml index 77001c394..2328ea079 100644 --- a/tools/fragpipe/fragpipe.xml +++ b/tools/fragpipe/fragpipe.xml @@ -33,7 +33,7 @@ @PREPARE_DATABASE@ ## Run FragPipe - fragpipe + '$__tool_directory__/fragpipe' --msfragger_key f28c4be2-759b0a11-6c1ea652-1240565a --ionquant_key 47cb2953-b4bf7726-2c96f5fe-8f1013aa --headless diff --git a/tools/fragpipe/macros.xml b/tools/fragpipe/macros.xml index c1fb8b9e1..708e6b597 100644 --- a/tools/fragpipe/macros.xml +++ b/tools/fragpipe/macros.xml @@ -31,6 +31,14 @@ Prepares enviroment variables for FragPipe. -->