changeset 3:8edcbafb3b4e draft

"planemo upload for repository https://github.com/geraldinepascal/FROGS-wrappers/ commit 2024a13846ea6f9bd94ae62e3b2a5a3aba8cd304-dirty"
author frogs
date Tue, 24 Aug 2021 08:21:23 +0000
parents 094a2469204d
children 445b04a65ed8
files FROGS_data_manager/data_manager/FROGS_data_manager.py FROGS_data_manager/data_manager/FROGS_data_manager.xml FROGS_data_manager/data_manager_conf.xml FROGS_data_manager/tool-data/frogs_HVL_db.loc.sample FROGS_data_manager/tool-data/frogs_contaminant_db.loc FROGS_data_manager/tool-data/frogs_db.loc.sample FROGS_data_manager/tool_data_table_conf.xml.sample FROGS_data_manager/tool_dependencies.xml README.md RELEASE_NOTE.md affiliation_OTU.xml affiliation_filters.xml affiliation_postprocess.xml affiliations_stat.xml biom_to_stdBiom.xml biom_to_tsv.xml clustering.xml clusters_stat.xml demultiplex.xml deseq2_preprocess.xml deseq2_visualisation.xml galaxy_project_logo_square.png itsx.xml macros.xml normalisation.xml otu_filters.xml phyloseq_alpha_diversity.xml phyloseq_beta_diversity.xml phyloseq_clustering.xml phyloseq_composition.xml phyloseq_import_data.xml phyloseq_manova.xml phyloseq_structure.xml preprocess.xml remove_chimera.xml static/images/FROGS_db.png tree.xml tsv_to_biom.xml
diffstat 38 files changed, 869 insertions(+), 1666 deletions(-) [+]
line wrap: on
line diff
--- a/FROGS_data_manager/data_manager/FROGS_data_manager.py	Mon Jun 21 14:28:06 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,148 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-from galaxy.util.json import from_json_string, to_json_string
-import os, sys, argparse, time, json, requests, urllib, tarfile
-
-# FROGS_data_manager.py --database=frogs_db_data --all_dbs=false --date=0 --amplicons=16S --bases=SILVA --filters=Pintail100 --only_last_versions=true \
-# --tool_data=/home/maria/galaxy/galaxy-20.09/tool-data --output /home/maria/galaxy/galaxy-20.09/database/objects/e/7/7/dataset_e7766c39-8f36-450c-adf5-3e4ee8d5c562.dat
-
-def get_args():
-    parser = argparse.ArgumentParser()
-    parser.add_argument("-d","--database")
-    parser.add_argument("--all_dbs")
-    parser.add_argument("--date")
-    parser.add_argument("--amplicons")
-    parser.add_argument("--bases")
-    parser.add_argument("--filters")
-    parser.add_argument("--only_last_versions")
-    parser.add_argument("--tool_data")
-    parser.add_argument("-o","--output")
-    args = parser.parse_args()
-
-    return args
-
-def _add_data_table_entry(data_manager_dict, data_table_entry,data_table):
-    data_manager_dict['data_tables'] = data_manager_dict.get('data_tables', {})
-    data_manager_dict['data_tables'][data_table] = data_manager_dict['data_tables'].get(data_table, [])
-    data_manager_dict['data_tables'][data_table].append(data_table_entry)
-    return data_manager_dict
-
-def keep_only_last_version(db_index):
-    db_dict = dict()
-    for line in db_index:
-        db_type = "_".join(line[1:4]) if line[3] != "" else "_".join(line[1:3])
-        if db_type not in db_dict:
-            db_dict[db_type] = line
-    return list(db_dict.values())
-
-
-def frogs_sources(data_manager_dict,target_directory):
-
-    #variables
-    amplicons_list=[]
-    bases_list=[]
-    filters_list=[]
-    if  args.all_dbs=="false": 
-        amplicons_list = [amplicon.lower().strip() for amplicon in args.amplicons.split(",") if amplicon != ""]
-        bases_list = [base.lower().strip() for base in args.bases.split(",") if base != ""]
-        filters_list = [filter.lower().strip() for filter in args.filters.split(",") if filter!=""]
-        bottom_date = int(args.date)
-    tool_data_path=args.tool_data
-
-    #get frogs database index
-    frogs_db_index_link="http://genoweb.toulouse.inra.fr/frogs_databanks/assignation/FROGS_databases.tsv"
-    with requests.Session() as s:
-        download = s.get(frogs_db_index_link)
-        decoded_content = download.content.decode('utf-8')
-        db_index = decoded_content.splitlines()
-        db_index = [line.split("\t") for line in db_index[1:]]
-        db_index = [[line[0],line[1].lower(),line[2].lower(),line[3].lower()]+line[4:] for line in db_index]
-
-    #filter databases
-    if args.all_dbs=="false":
-        if len(amplicons_list)!=0: db_index = [line for line in db_index if any([amplicon in amplicons_list for amplicon in line[1].split(',')])]   #filter by amplicons
-        if len(bases_list)!=0: db_index = [line for line in db_index if line[2] in bases_list]                                                      #filter by base
-        if len(filters_list)!=0: db_index = [line for line in db_index if line[3] in filters_list]                                                  #filter by filters
-        if bottom_date!=0: db_index = [line for line in db_index if int(line[0])>=bottom_date]                                                      #filter by date
-    if args.only_last_versions=="true":
-        db_index = keep_only_last_version(db_index)                                                          #keep only last version
-
-    #get frogs dbs
-    os.chdir(target_directory)
-    dir_name="frogs_db_"+time.strftime("%Y%m%d")
-    os.mkdir(dir_name)
-    dbs=set([])
-    for line in db_index:
-        value=line[5]
-        name=value.replace("_"," ") if not "_" in line[4] else value.replace(line[4],"").replace("_", " ") + line[4]
-        link=line[6]
-        name_dir="".join([line[6].replace(".tar.gz","").split("/")[-1]])
-        file_path=tool_data_path+"/frogs_db/"+name_dir
-        if not os.path.exists(file_path):   #if the file is not already in frogs_db directory
-            
-            #download frogs db
-            dl_file =  urllib.request.URLopener()
-            dl_file.retrieve(link, "tmp.tar.gz")
-            
-            #unzip frogs db
-            with tarfile.open("tmp.tar.gz") as tar:
-                tar.extractall(dir_name)
-                tar.close()
-                os.remove('tmp.tar.gz')
-            
-            #get fasta file path
-            tmp = set(os.listdir(dir_name))
-            new_db = dir_name+"/"+"".join(tmp.difference(dbs))
-            files = os.listdir(new_db)
-            fasta = "".join([file for file in files if file.endswith('.fasta')])
-            path = new_db+'/'+fasta
-            dbs = os.listdir(dir_name)
-            release = value+"_"+time.strftime("%Y-%m-%d")
-            date=time.strftime("%Y%m%d")
-            path = os.path.join(target_directory,path)
-
-            data_table_entry = dict(name = name, value = value, path=path)
-            _add_data_table_entry(data_manager_dict, data_table_entry, "frogs_db")
-
-# def HVL_sources(data_manager_dict,target_directory):
-
-#     os.chdir(target_directory)
-#     for link in ["http://genoweb.toulouse.inra.fr/frogs_databanks/HVL/ITS/UNITE_s_7.1_20112016/Unite_s_7.1_20112016_ITS1.fasta","http://genoweb.toulouse.inra.fr/frogs_databanks/HVL/ITS/UNITE_s_7.1_20112016/Unite_s_7.1_20112016_ITS2.fasta"]:
-#         file_name=link.split("/")[-1].replace('.fasta',"_"+time.strftime("%Y-%m-%d")+".fasta")
-#         dl_file = urllib.URLopener()
-#         dl_file.retrieve(link,file_name)
-
-#         #get fasta file path
-#         path = os.path.join(target_directory,file_name)
-#         if link.endswith('ITS1.fasta'):
-#             name = "UNITE 7.1 ITS1 " + time.strftime("%Y-%m-%d")
-#         elif link.endswith('ITS2.fasta'):
-#             name = "UNITE 7.1 ITS2 " + time.strftime("%Y-%m-%d")
-#         value=file_name.replace('.fasta','')
-
-#         data_table_entry = dict(name = name, value = value, path=path)
-#         _add_data_table_entry(data_manager_dict, data_table_entry, "frogs_HVL_db")
-
-def main():
-
-    #get args from command line
-    global args
-    args = get_args()
-
-    # Extract json file params
-    data_manager_dict = {}
-    filename = args.output
-    params = from_json_string(open(filename).read())
-    target_directory = params[ 'output_data' ][0]['extra_files_path']
-    os.mkdir(target_directory)
-
-    # if args.database=="frogs_db_data":
-    frogs_sources(data_manager_dict,target_directory)
-    # elif args.database=="HVL_db_data":
-    #     HVL_sources(data_manager_dict,target_directory)
-
-    #save info to json file
-    open(filename, 'wt').write(to_json_string(data_manager_dict))
-
-if __name__ == "__main__":
-    main()
--- a/FROGS_data_manager/data_manager/FROGS_data_manager.xml	Mon Jun 21 14:28:06 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-<tool id="FROGS_data_manager" name="FROGS Data manager" version="3.2.2" tool_type="manage_data">
-    <requirements>
-    </requirements>
-    <stdio>
-        <exit_code range="1:" />
-    </stdio>
-    <command><![CDATA[
-        $__tool_directory__/FROGS_data_manager.py
-            --database="frogs_db_data"
-            
-            --all_dbs="$db_type.db"
-            #if $db_type.db=="false"
-                --date="$db_type.date"
-                --amplicons="$db_type.amplicons"
-                --bases="$db_type.bases"
-                --filters="$db_type.filters"
-            #end if
-            --only_last_versions="$only_last_versions"
-            
-            --tool_data="$__tool_data_path__"
-            --output "$output"
-    ]]></command>
-    <inputs>
-        <conditional name="db_type">
-            <param name="db" type="boolean" checked="true" truevalue="true" falsevalue="false" label="Download all databases"/>
-            <when value="true"/>
-            <when value="false">
-                <param name="date" value="0" type="text"  label="Download only most recent databases" help="Select databases uploaded later than this date. Please enter a date at the following format: YYYYMMDD, else leave 0.">
-                    <validator type="regex" message="Please enter a date at the following format: YYYYMMDD, leave 0 for no date">0|[1-2]{1}[0-9]{3}[0-1]{1}[0-9]{1}([0-2]{1}[0-9]{1}|3[0-1]{1})</validator>
-                </param>
-                <param name="amplicons" type="text" label='Select amplicon specific databases' help='Write amplicons names separated by ","; example: "COI,ITS,16S" or "23S"'/>
-                <param name="bases" type="text" label='Select database by name' help='Write base names separated by ","; example: "SILVA,PR2,MIDAS" or "BOLD"'/>
-                <param name="filters" type="text" label='Select database on filter name' help='Write filter names separated by ",";example: "Pintail100,Fungi"'/>
-            </when>
-        </conditional>
-        <param name="only_last_versions" type="boolean" checked="true" label="Download only the last version of selected database"/>
-    </inputs>
-    <outputs>
-        <data name="output" format="data_manager_json"/>
-    </outputs>
-    <help>
-       	.. image:: static/images/FROGS_logo.png
-   			:height: 144
-   			:width: 110
-
-        FROGS datamanager allows to download preformated databases for FROGS Affiliation OTU tool.
-
-        All databases are available at http://genoweb.toulouse.inra.fr/frogs_databanks/assignation/.
-        
-        This tools is based on the `FROGS_databases.tsv.txt &lt;http://genoweb.toulouse.inra.fr/frogs_databanks/assignation/FROGS_databases.tsv.txt&gt;`_, that we update each time a new database is formatted.
-
-		.. image:: static/images/FROGS_db.png
-   			:height: 157
-   			:width: 961
-
-   		You may download all databases, but you may (should) filter whished database on different criteria:
-
-   		- on a date, to download only last formated databases
-   		- on an amplicon type
-   		- on a base name
-   		- eventually on a filtered name, this may be the case for example, for 16S SILVA database, for which we provide reference sequence with pintail score above a threshold
-
-   		Last option allow you to download only last version of previously selected databases, indeed we provide reference database since 2016 with for example, around 1 version of SILVA per year.
-    </help>
-</tool>
\ No newline at end of file
--- a/FROGS_data_manager/data_manager_conf.xml	Mon Jun 21 14:28:06 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<data_managers>
-    <data_manager tool_file="data_manager/FROGS_data_manager.xml" id="frogs_data_manager">
-        <data_table name="frogs_db">
-            <output>
-                <column name="value" />
-                <column name="name" />
-                <column name="path" output_ref="output">
-                    <move type="directory" relativize_symlinks="False">
-                        <source>#echo "/".join(str($path).split('/')[:-1])#</source>
-                        <target base="${GALAXY_DATA_MANAGER_DATA_PATH}">frogs_db/#echo str($path).split('/')[-2]#/</target>
-                    </move>
-                    <value_translation>${GALAXY_DATA_MANAGER_DATA_PATH}/frogs_db/#echo "/".join(str($path).split('/')[-2:])#</value_translation>
-                    <value_translation type="function">abspath</value_translation>
-                </column>
-            </output>
-        </data_table>
-    </data_manager>
-</data_managers>
--- a/FROGS_data_manager/tool-data/frogs_HVL_db.loc.sample	Mon Jun 21 14:28:06 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-# Copyright (C) 2014 INRA
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-#
-#This is a sample file that enables tools FROGS_affiliations_postprocess to solve
-#inclusive amplicon sequence by selecting the smallest reference among multihit
-#You will need to create or download exact amplicon sequence reference fasta file
-#download link : http://genoweb.toulouse.inra.fr/frogs_databanks/HVL_reference
-#Finally you will need to create HVL_db.loc file similar to this one in your galaxy
-#tool-data directory.The HVL_db.loc file has this format (longer white space characters are
-#TAB characters):
-#
-#<unique_database_name>    <name>    <file_path>
-#
-#First column will be the visible name in galaxy.
-#So, for example, if you have  UNITE 7.1 ITS1 (only!) stored 
-#in /galaxy_databanks/ITS/UNITE_7.1/UNITE_ITS1.fasta 
-#then the HVL_db.loc entry would look like this:
-#
-#
-# EXAMPLE FOR TEST :
-#Unite_extract_ITS1_test	Unite_extract_ITS1_test	${__HERE__}/HVL_db_data/Unite_extract_ITS1.fasta
--- a/FROGS_data_manager/tool-data/frogs_contaminant_db.loc	Mon Jun 21 14:28:06 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-# Copyright (C) 2014 INRA
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-#
-#This is a sample file that enables tools FROGS_filters to identify phix contaminant. You will #need to create or download Blast+ index.
-#download link : http://genoweb.toulouse.inra.fr/frogs_databanks/contaminants
-#Finally you will need to create phiX_db.loc file similar to this one in your galaxy
-#tool-data directory.The phiX_db.loc file has this format (longer white space characters are
-#TAB characters):
-#
-#<contaminant_name>	<name>	<file_path>
-#
-#First column will be the visible name in galaxy.
-#So, for example, if you had phix indexed stored in
-#/galaxy_databanks/phiX/ 
-#then the phiX_db.loc entry would look like this:
-#
-#
-# EXAMPLE FOR TEST :
-#phiX_test	phiX_test	${__HERE__}/phiX_db_data/phi.fa
-#
-#and your /galaxy_databanks/phiX/ directory
-#would contain index files:
-#
-#-rwxrwxr-x 1 gpascal FROGS 5535 16 sept.  2015 phi.fa
-#-rw-rwxr-- 1 gpascal FROGS  132 16 sept.  2015 phi.fa.nhr
-#-rw-rwxr-- 1 gpascal FROGS   88 16 sept.  2015 phi.fa.nin
-#-rw-rwxr-- 1 gpascal FROGS 1348 16 sept.  2015 phi.fa.nsq
-#
--- a/FROGS_data_manager/tool-data/frogs_db.loc.sample	Mon Jun 21 14:28:06 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-# Copyright (C) 2014 INRA
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-#
-#This is a sample file that enables tools FROGS_affiliations_OTU to use taxonomy database for
-#taxonomy affiliation. You will need to create or download Blast+ index and train your database
-#for RDP classifier these data files.
-#download link : http://genoweb.toulouse.inra.fr/frogs_databanks/assignation
-#Finally you will need to create frogs_db.loc file similar to this one in your galaxy
-#tool-data directory.The frogs_db.loc file has this format (longer white space characters are
-#TAB characters):
-#
-#<unique_database_name>   <file_path>
-#
-#First column will be the visible name in galaxy.
-#So, for example, if you had 16S silva 128 indexed stored in
-#/galaxy_databanks/16S/silva_128/ 
-#then the frogs_db.loc entry would look like this:
-#
-#silva 128 16S  /galaxy_databanks/16S/silva_128/silva_128_16S.fasta
-#
-#and your /galaxy_databanks/16S/silva_128/ directory
-#would contain index files:
-#
-#-rw-r--r-- 1 mbernard FROGS    8097966  5 déc.  16:56 bergeyTrainingTree.xml
-#-rw-r--r-- 1 mbernard FROGS 1572981589  5 déc.  16:56 genus_wordConditionalProbList.txt
-#-rw-r--r-- 1 mbernard FROGS       1654  5 déc.  16:56 LICENCE.txt
-#-rw-r--r-- 1 mbernard FROGS    1072228  5 déc.  16:56 logWordPrior.txt
-#-rw-r--r-- 1 mbernard FROGS  940834335  5 déc.  16:56 silva_128_16S.fasta
-#-rw-r--r-- 1 mbernard FROGS  152606489  5 déc.  16:56 silva_128_16S.fasta.nhr
-#-rw-r--r-- 1 mbernard FROGS    6918588  5 déc.  16:56 silva_128_16S.fasta.nin
-#-rw-r--r-- 1 mbernard FROGS  205320030  5 déc.  16:56 silva_128_16S.fasta.nsq
-#-rw-r--r-- 1 mbernard FROGS        281  5 déc.  16:56 silva_128_16S.fasta.properties
-#-rw-r--r-- 1 mbernard FROGS    3420464  5 déc.  16:56 silva_128_16S.tax
-#-rw-r--r-- 1 mbernard FROGS     964048  5 déc.  16:57 wordConditionalProbIndexArr.txt
-#
-#
-#<name>    <name>    <file_path>
-#
-# EXAMPLE FOR TEST :
-#ITS1_test	ITS1_test	${__HERE__}/frogs_db_data/ITS1.rdp.fasta
--- a/FROGS_data_manager/tool_data_table_conf.xml.sample	Mon Jun 21 14:28:06 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-<?xml version="1.0"?>
-<tables>
-    <!-- Location of frogs database files -->
-    <table name="frogs_db" comment_char="#">
-        <columns>value, name, path</columns>
-        <file path="tool-data/frogs_db.loc" />
-    </table>
-    <table name="frogs_HVL_db" comment_char="#">
-        <columns>value, name, path</columns>
-        <file path="tool-data/frogs_HVL_db.loc" />
-    </table>
-    <table name="frogs_contaminant_db" comment_char="#">
-        <columns>value, name, path</columns>
-        <file path="tool-data/frogs_contaminant_db.loc" />
-    </table>
-</tables>
--- a/FROGS_data_manager/tool_dependencies.xml	Mon Jun 21 14:28:06 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-<?xml version="1.0"?>
-<tool_dependency>
-</tool_dependency>
--- a/README.md	Mon Jun 21 14:28:06 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,401 +0,0 @@
-<p align="center">
- <a href="http://frogs.toulouse.inra.fr/">
-  <img src="static/images/FROGS_logo.png" align="center" width="20%" style="display: block; margin: auto;"/>
- </a>
-</p>
-
-Visit our web site : http://frogs.toulouse.inrae.fr/
-
-[![Release](https://img.shields.io/badge/release-3.2.3.1-blue.svg)![Date](https://img.shields.io/badge/date-Jun%202021-red.svg)](https://github.com/geraldinepascal/FROGS-wrappers/releases)[<img src="https://www.podcastscience.fm/wp-content/uploads/2017/12/deezer.png" width="5%" style="display: block; margin: auto;"/>](https://www.deezer.com/fr/playlist/5233843102?utm_source=deezer&utm_content=playlist-5233843102&utm_term=18632989_1545296531&utm_medium=web)
-
-
-
-# Description
-
-FROGS is a workflow designed to produce an OTU count matrix from high depth sequencing amplicon data.
-
-FROGS also provide statistical tools to explore OTU count table and taxonomical affiliations.
-
-FROGS-wrappers allow to add FROGS on a Galaxy instance.
-
-# Table of content
-
-* [Installing FROGS\-wrappers](#installing-frogs-wrappers)
-  * [Simplest way](#simplest-way)
-  * [From sources](#from-sources)
-      * [Prerequisites](#prerequisites)
-      * [FROGS\-wrappers installation](#frogs-wrappers-installation)
-* [Use PEAR as reads merge software in preprocess](#use-pear-as-reads-merge-software-in-preprocess)
-* [Upload and configure the databanks](#upload-and-configure-the-databanks)
-* [Galaxy configuration](#galaxy-configuration)
-  * [Setup Galaxy environment variables](#setup-galaxy-environment-variables)
-  * [Install python packages inside virtual env](#install-python-packages-inside-virtual-env)
-  * [Avoid FROGS HTML report sanitization](#avoid-FROGS-HTML-report-sanitization)
-  * [Set memory and parallelisation settings](#set-memory-and-parallelisation-settings)
-* [License](#license)
-* [Copyright](#copyright)
-* [Citation](#citation)
-* [Contact](#contact)
-
-# Installing FROGS-wrappers
-
-## Simplest way
-
-FROGS is available on the Toolshed.
-
-It will install FROGS thanks to [conda](https://anaconda.org/bioconda/frogs), download all these XML tools and well configure them in your Galaxy.
-
-The 25 FROGS tools will be in random order in your tools panel. We propose to control that order by modifying the `shed_tool_conf.xml`  which will render the following`integrated_tool_panel.xml ` file. 
-
-We suppose that you installed FROGS in a specific section named `FROGS`. 
-
-```
-<section id="FROGS_3.2.3.1" name="FROGS" version="">
-
-    <label id="FROGS_OTU_toolshed_3.2.3.1" text="OTUs reconstruction" version="" />
-
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_demultiplex/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_preprocess/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_clustering/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_remove_chimera/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_OTU_filters/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_itsx/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_affiliation_OTU/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_affiliation_filters/3.2.3.1" />    
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_affiliation_postprocess/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_normalisation/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_Tree/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_clusters_stat/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_affiliations_stat/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_biom_to_stdBiom/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_biom_to_tsv/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_tsv_to_biom/3.2.3.1" />
-
-    <label id="FROGSSTAT_Phyloseq_toolshed_3.2.3.1" text="OTUs structure and composition analysis" version="" />
-    
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_Phyloseq_Import_Data/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_Phyloseq_Composition_Visualisation/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_Phyloseq_Alpha_Diversity/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_Phyloseq_Beta_Diversity/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_Phyloseq_Sample_Clustering/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_Phyloseq_Structure_Visualisation/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_Phyloseq_Multivariate_Analysis_Of_Variance/3.2.3.1" />
-    
-    <label id="FROGSSTAT_DESeq_toolshed_3.2.3.1" text="Differential abundance analysis" version="" />
-    
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_DESeq2_Preprocess/3.2.3.1" />
-    <tool id="toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_DESeq2_Visualisation/3.2.3.1" />
-</section>
-```
-
-
-
-## From sources
-
-#### Prerequisites
-
-You should start by installing [FROGS](https://github.com/geraldinepascal/FROGS) (remember, FROGS is now installable via conda ).
-
-#### FROGS-wrappers installation
-
-1.    <u>Download wrapper</u>
-
-   Download the last released versions of FROGS-wrappers: https://github.com/geraldinepascal/FROGS-wrappers/releases
-
-   Uncompress and unarchive the release in your ` <Galaxy_Dir>/tools` directory
-
-   (replace the) link to the new directory like this
-
-   ` ln -s <Galaxy_Dir>/tools/FROGS-wrappers-<Release_Number>  <Galaxy_Dir>/tools/FROGS`
-
-2. <u>Add tools in galaxy</u>
-
-   Add the tools in `<Galaxy_Dir>/config/tool_conf.xml`
-
-   ```
-     <section id="frogs_local" name="FROGS local">
-       <label id="frogs_otu_construction" text="OTUs reconstruction" />
-       <tool file="FROGS/demultiplex.xml" />
-       <tool file="FROGS/preprocess.xml" />
-       <tool file="FROGS/clustering.xml" />
-       <tool file="FROGS/remove_chimera.xml" />
-       <tool file="FROGS/otu_filters.xml" />
-       <tool file="FROGS/itsx.xml" />
-       <tool file="FROGS/affiliation_OTU.xml" />
-       <tool file="FROGS/affiliation_filters.xml" />
-       <tool file="FROGS/affiliation_postprocess.xml" />
-       <tool file="FROGS/normalisation.xml" />
-       <tool file="FROGS/tree.xml" />
-       <tool file="FROGS/clusters_stat.xml" />
-       <tool file="FROGS/affiliations_stat.xml" />
-       <tool file="FROGS/biom_to_stdBiom.xml" />
-       <tool file="FROGS/biom_to_tsv.xml" />
-       <tool file="FROGS/tsv_to_biom.xml" />
-       <label id="frogsstat_phyloseq" text="OTUs structure and composition analysis" />
-       <tool file="FROGS/phyloseq_import_data.xml" />
-       <tool file="FROGS/phyloseq_composition.xml" />
-       <tool file="FROGS/phyloseq_alpha_diversity.xml" />
-       <tool file="FROGS/phyloseq_beta_diversity.xml" />
-       <tool file="FROGS/phyloseq_clustering.xml" />
-       <tool file="FROGS/phyloseq_structure.xml" />
-       <tool file="FROGS/phyloseq_manova.xml" />
-       <label id="frogsstat_deseq" text="Differential abundance analysis" />
-       <tool file="FROGS/deseq2_preprocess.xml" />
-       <tool file="FROGS/deseq2_visualisation.xml" />
-     </section>     
-   ```
-   NB: If you used previous version of FROGS (<3.1), you must removed `app` direcotry name in the paths names. 
-
-3. <u> Correct tools order</u>
-
-Tools order in the Galaxy interface will not follow the tool_conf.xml definition.
-
-Modify manually the `galaxy_dir/config/integrated_tool_panel.xml`:
-
-```
-    <section id="frogs_local_3_2_3" name="FROGS local" version="3_2_3">
-        <label id="frogs_otu_construction_3_2_3" text="OTUs reconstruction" version="3_2_3" />
-        <tool id="FROGS_demultiplex_3_2_3" />
-        <tool id="FROGS_preprocess_3_2_3" />
-        <tool id="FROGS_clustering_3_2_3" />
-        <tool id="FROGS_remove_chimera_3_2_3" />
-        <tool id="FROGS_OTU_filters_3_2_3" />
-        <tool id="FROGS_itsx_3_2_3" />
-        <tool id="FROGS_affiliation_OTU_3_2_3" />
-        <tool id="FROGS_affiliation_filters_3_2_3" />
-        <tool id="FROGS_affiliation_postprocess_3_2_3" />
-        <tool id="FROGS_normalisation_3_2_3" />
-        <tool id="FROGS_Tree_3_2_3" />
-        <tool id="FROGS_clusters_stat_3_2_3" />
-        <tool id="FROGS_affiliations_stat_3_2_3" />
-        <tool id="FROGS_biom_to_stdBiom_3_2_3" />
-        <tool id="FROGS_biom_to_tsv_3_2_3" />
-        <tool id="FROGS_tsv_to_biom_3_2_3" />
-        <label id="frogsstat_phyloseq_3_2_3" text="OTUs structure and composition analysis" version="3_2_3" />
-        <tool id="FROGSSTAT_Phyloseq_Import_Data_3_2_3" />
-        <tool id="FROGSSTAT_Phyloseq_Composition_Visualisation_3_2_3" />
-        <tool id="FROGSSTAT_Phyloseq_Alpha_Diversity_3_2_3" />
-        <tool id="FROGSSTAT_Phyloseq_Beta_Diversity_3_2_3" />
-        <tool id="FROGSSTAT_Phyloseq_Sample_Clustering_3_2_3" />
-        <tool id="FROGSSTAT_Phyloseq_Structure_Visualisation_3_2_3" />
-        <tool id="FROGSSTAT_Phyloseq_Multivariate_Analysis_Of_Variance_3_2_3" />
-        <label id="frogsstat_deseq_3_2_3" text="Differential abundance analysis" version="_3_2_3" />
-        <tool id="FROGSSTAT_DESeq2_Preprocess_3_2_3" />
-        <tool id="FROGSSTAT_DESeq2_Visualisation_3_2_3" />
-    </section>
-```
-
-
-
-1. <u>Add images</u>
-
-   Add the FROGS-wrappers images in `<Galaxy_Dir>/static/images` directory
-
-   `cp <Galaxy_Dir>/tools/FROGS/static/images/* <Galaxy_Dir>/static/images/.`
-
-
-# Use PEAR as reads merge software in preprocess
-[PEAR](https://cme.h-its.org/exelixis/web/software/pear/) is one of the most effective software for read pair merging, but as its licence is not free for private use, we can not distribute it in FROGS.
-If you work in an academic lab on a private Galaxy server, or if you have payed your licence you can use PEAR in FROGS preprocess.
-For that, you need to:
-
-* have PEAR in your PATH or in the FROGS libexec directory
-
-* add PEAR in the FROGS-wrappers preprocess Galaxy wrapper (`<FROGS_DIR>/tools/preprocess/preprocess.xml`): 
-
-  :warning: there is two places where the list `merge_software` is defined, add pear in both of them!
-
-```
-    <conditional name="merge_software_type">
-        <param name="merge_software" type="select" label="Merge software" help="Select the software to merge paired-end reads.">
-            <option value="vsearch" selected="true">Vsearch</option>
-            <option value="flash">Flash</option>
-            <option value="pear">PEAR</option>
-        </param>
-        <when value="flash">
-            <param name="expected_amplicon_size" type="integer" label="Expected amplicon size" help="Maximum amplicon length expected in approximately 90% of the amplicons." value="" />
-        </when>
-    </conditional>
-```
-
-:warning: remember, there is two places where the list `merge_software` is defined, add pear in both of them!
-
-# Upload and configure the databanks
-
-Databanks are defined in `loc` files and `loc` files are defined in Galaxy datatable. 
-
-* FROGS provides a data_manager. It concerns only taxonomical assignation databank which are listed here : http://genoweb.toulouse.inra.fr/frogs_databanks/assignation/FROGS_databases.tsv.txt.
-
-  You may choose to download all preformated database, or filter them on:
-
-  * date : all availbale database since DATE
-  * amplicon : ex: 16S
-  * base : ex SILVA
-  * filters : this column is not always filled, but we propose SILVA database filtered on pintail score
-  * version	: ex : 138.1
-  
-* Manual installation :
-
-  * datatables : `<Galaxy_Dir>/config/tool_data_table_conf.xml` , example : `<Galaxy_Dir>/tools/FROGS/tool_data_table_conf.xml.sample`
-
-    Add FROGS-wrappers datatables in the Galaxy datatables, but replace `{__HERE__}` by `tools/FROGS`. 
-
-  * loc files example : `<Galaxy_Dir>/tools/FROGS/tool-data/`
-
-    Copy and rename them as indicated in the tool_data_table.
-
-    Then add entry as indicated in each loc files.
-
-* Toolshed installation : 
-
-  * datatables : `<Galaxy_Dir>/config/shed_tool_data_table_conf.xml` (nothing to modify, FROGS datatables should automatically be added)
-  * loc files to filled in : `tool-data/toolshed.g2.bx.psu.edu/repos/frogs/frogs/<RANDOM>/`
-
-
-
-We provide some databanks for each of these 3 data tables, you simply need to download them and add them in the corresponding `loc` files. 
-
-- Assignation databank for affiliation_OTU tool
-
-  URL : http://genoweb.toulouse.inra.fr/frogs_databanks/assignation
-
-  loc file :`frogs_db.loc`
-
-- Contaminant databank for filter tool
-
-  URL : http://genoweb.toulouse.inra.fr/frogs_databanks/contaminants
-
-  loc file : `frogs_contaminant_db.loc`
-
-- Hyper variable in length amplicon databank for affiliation_postprocess tool
-
-  URL : http://genoweb.toulouse.inra.fr/frogs_databanks/HVL
-
-  loc file : `frogs_HVL.loc`
-
-
-# Galaxy configuration
-
-## setup Galaxy environment variables
-
-FROGS python programs (and all dependencies) need to be available in the PATH, if not installing from the toolshed, you need to add `<FROGS_PATH>/app` directory in the Galaxy PATH environment variable. (see [environment-setup-file parameter](https://docs.galaxyproject.org/en/latest/admin/config.html#environment-setup-file) ). 
-
-You can also activate `conda` as tool dependency resolver (https://docs.galaxyproject.org/en/latest/admin/conda_faq.html) by setting `conda_prefix` path and `conda_auto_install ` to `true` in the `<Galaxy_dir>/config/galaxy.yml` configuration file.
-
-## Install python packages inside virtual env
-
-Galaxy runs in a specific virtual env. To allow FROGS clusters stat to access to the python scipy library, you may need to (re)install it inside the Galaxy virtual env
-```
-cd <Galaxy_Dir>
-source .venv/bin/activate
-pip install scipy
-deactivate
-```
-
-## Avoid FROGS HTML report sanitization
-
-By default Galaxy sanitizes HTML outputs to prevent XSS attacks.
-FROGS outputs, for almost all tools, report in HTML format. To allow their visualisation inside Galaxy, we need to avoid the Galaxy sanitization.
-You need to uncomment `sanitize_whitelist_file` line in `<Galaxy_Dir>/config/galaxy.ini`, create the corresponding `<Galaxy_Dir>/config/sanitize_whitelist.txt` file if not already done, and add the following lines in it. You may also manage it from the Admin interface of Galaxy in the `Manage Allowlist` section.
-
-```
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_DESeq2_Preprocess/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_DESeq2_Visualisation/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_Phyloseq_Alpha_Diversity/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_Phyloseq_Beta_Diversity/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_Phyloseq_Composition_Visualisation/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_Phyloseq_Import_Data/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_Phyloseq_Multivariate_Analysis_Of_Variance/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_Phyloseq_Sample_Clustering/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGSSTAT_Phyloseq_Structure_Visualisation/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_OTU_filters/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_Tree/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_affiliation_OTU/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_affiliation_filters/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_affiliations_stat/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_clusters_stat/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_itsx/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_normalisation/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_preprocess/3.2.3
-toolshed.g2.bx.psu.edu/repos/frogs/frogs/FROGS_remove_chimera/3.2.3
-
-```
-
-## Set memory and parallelisation settings
-
-If you have more than one CPU, it is recommended to increase the number of CPUs used by tools.
-
-All CPUs must be on the same computer/node.
-
-
-   * Specifications
-
-     |         Tool          | RAM per CPU | Minimal RAM | Configuration example |
-     | :-------------------: | :---------: | :---------: | :-------------------: |
-     |      preprocess       |     8Gb     |      -      |   12 CPUs and 96 GB   |
-     |      clustering       |      -      |    10 Gb    |   16 CPUs and 60 GB   |
-     | ITSx / remove_chimera |     3Gb     |     5Gb     |   12 CPUs and 36 GB   |
-     |    affiliation_OTU    |      -      |    20 Gb    |  30 CPUs and 300 GB   |
-
-   * Galaxy configuration
-
-     You need to add `destiantion` sections (one per tool) in the `<Galaxy-Dir>/config/job_conf.xml` 
-     Example for SGE scheduler:
-
-
-```
-<destinations>
-	...
-	<destination id="FROGS_preprocess_job" runner="drmaa">
-		<param id="galaxy_external_runjob_script">scripts/drmaa_external_runner.py</param>
-		<param id="galaxy_external_killjob_script">scripts/drmaa_external_killer.py</param>
-		<param id="galaxy_external_chown_script">scripts/external_chown_script.py</param>
-		<param id="nativeSpecification">-clear -q galaxyq -l mem=5G -l h_vmem=13G -pe parallel_smp 12</param>
-	</destination>
-	<destination id="FROGS_clustering_job" runner="drmaa">
-		<param id="galaxy_external_runjob_script">scripts/drmaa_external_runner.py</param>
-		<param id="galaxy_external_killjob_script">scripts/drmaa_external_killer.py</param>
-		<param id="galaxy_external_chown_script">scripts/external_chown_script.py</param>
-		<param id="nativeSpecification">-clear -q galaxyq -l mem=3G -l h_vmem=10G -pe parallel_smp 16</param>
-	</destination>
-	<destination id="FROGS_remove_chimera_job" runner="drmaa">
-		<param id="galaxy_external_runjob_script">scripts/drmaa_external_runner.py</param>
-		<param id="galaxy_external_killjob_script">scripts/drmaa_external_killer.py</param>
-		<param id="galaxy_external_chown_script">scripts/external_chown_script.py</param>
-		<param id="nativeSpecification">-clear -q galaxyq -l mem=3G -l h_vmem=4G -pe parallel_smp 12</param>
-	</destination>
-	<destination id="FROGS_itsx_job" runner="drmaa">
-		<param id="galaxy_external_runjob_script">scripts/drmaa_external_runner.py</param>
-		<param id="galaxy_external_killjob_script">scripts/drmaa_external_killer.py</param>
-		<param id="galaxy_external_chown_script">scripts/external_chown_script.py</param>
-		<param id="nativeSpecification">-clear -q galaxyq -l mem=3G -l h_vmem=4G -pe parallel_smp 12</param>
-	</destination>
-	<destination id="FROGS_affiliation_OTU_job" runner="drmaa">
-		<param id="galaxy_external_runjob_script">scripts/drmaa_external_runner.py</param>
-		<param id="galaxy_external_killjob_script">scripts/drmaa_external_killer.py</param>
-		<param id="galaxy_external_chown_script">scripts/external_chown_script.py</param>
-		<param id="nativeSpecification">-clear -q galaxyq -l mem=7G -l h_vmem=10G -pe parallel_smp 30</param>
-	</destination>
-</destinations>
-<tools>
-...
-	<tool id="FROGS_preprocess" destination="FROGS_preprocess_job"/>   
-	<tool id="FROGS_clustering" destination="FROGS_clustering_job"/>     
-	<tool id="FROGS_remove_chimera" destination="FROGS_remove_chimera_job"/> 
-	<tool id="FROGS_itsx" destination="FROGS_itsx_job"/> 
-	<tool id="FROGS_affiliation_OTU" destination="FROGS_affiliation_OTU_job"/>
-</tools>
-```
-
-# License
-    GNU GPL v3
-
-# Copyright
-    2021 INRAE
-
-# Citation
-    Please cite the **FROGS article**: *Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution.*
-
-# Contact
-    frogs-support@inrae.fr
-
--- a/RELEASE_NOTE.md	Mon Jun 21 14:28:06 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-# v3.2.3.1 [2021-06]
-
-This version still refers to FROGS_3.2.3 suit.
-
-## Modifications:
-
-* DESeq2 visualisation : correctly use the reference modality (in the tool conf pannel) as the expected modality2 in the deseq2_visualisation.py command line. Results were correct in the previous version but the reference condition was not the one precised by the user.
-
-  
-
-# v3.2.3 [2021-06]
-
-## Modifications:
-
-* Affiliation_OTU : add a taxonomic rank parameter to correctly take into account taxonomy not defined on commonly used 7 ranks.
-* Update R and package dependencies to version 4.0.5 (because of trouble installing DESeq2 version 1.26).
-* Rename OTU FIlter and Affiliation Filter output files.
-
-
-
-# v3.2.2 [2021-04]
-
-### Tools added:
-  * DESeq2 preprocess : Compute differential abundancy analysis
-  * DESeq2 visualisation : Create table and plots to explore and illustrate the differential abundant OTUs
-  * Filters has been splitted into to new tools : FROGS OTU Filters and FROGS Affiliations Filters. 
-      * FROGS OTU Filters filters OTU on presence/absence, abundances and contamination as Filters did. For contamination research, user may now use a personnal multifasta contaminant reference.
-      * FROGS Affiliation Filters delete OTU or mask affiliation that do not respect affiliation metrics criteria, or affiliated to undesirable (partial) taxon.
-  * FROGS datamanager is now available to manage affiliation reference database (frogs_db.loc for affiliation_OTU tool) thanks to @davidchristiany.
-
-### Contaminant database added
-  * add Arabidopsis thaliana chroloroplast sequence 
-
-### Modifications:
-  * ITSx : add organism model option scanning, change default behavior regarding the trimming of conserved regions
-
-  * Use english typo for normalise and visualise
-
-  * rename phix_db.loc in contaminant_db.loc
-
-  * update tool dependencies version
-
-    
-
-# v3.1 [2018-01-08]
-
-This release corresponds to the FROGS 3.1.0 release.
-
-* ### Tools added:
-
-  - ITSx : tool available for selecting and trimming ITS sequences based on ITSx tool
-  - Affiliation Postprocess : resolve ambiguities due to inclusiv ITS, and aggregated OTU based on 
-    taxonomic affiliations
-
-* ### Modifications:
-
-  - use tool data table instead of simple loc files for filters, affiliation_OTU and affiliation_postprocess
-  - Tree do no longer support Pynast alignment thanks to a template file
-
-# v2.0.0  [2018-12-11]
-
-  First package.
-
-This release corresponds to the FROGS 2.0.0 release
--- a/affiliation_OTU.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/affiliation_OTU.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,25 +15,30 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool id="FROGS_affiliation_OTU" name="FROGS Affiliation OTU" version="3.2.3.">
+<tool id="FROGS_affiliation_OTU" name="FROGS Affiliation OTU" version="@TOOL_VERSION@+galaxy2">
   <description>Taxonomic affiliation of each OTU's seed by RDPtools and BLAST</description>
-  <requirements>
-        <requirement type="package" version="3.2.3">frogs</requirement>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements">
         <requirement type="package" version="2.10">blast</requirement>
         <requirement type="package" version="6.6.0">emboss</requirement>
-        <requirement type="package" version="2.0.3">rdptools</requirement>
-    </requirements>
+        <!-- <requirement type="package" version="2.0.3">rdptools</requirement> -->
+    </expand>
+
   <command detect_errors="exit_code">
     #set $reference_filename = str( $ref_file.fields.path )
-    affiliation_OTU.py 
+    affiliation_OTU.py
                            --reference '${reference_filename}'
                            --taxonomy-ranks $taxonomic_ranks
-                           --input-biom $biom_abundance 
-                           --input-fasta $fasta_sequences
-                           --output-biom $biom_affiliation 
-                           --summary $summary 
+                           --input-biom '$biom_abundance'
+                           --input-fasta '$fasta_sequences'
+                           --output-biom '$biom_affiliation'
+                           --summary '$summary'
                            --nb-cpus \${GALAXY_SLOTS:-1}
-                           --java-mem $mem 
+                           --java-mem $mem
                            #if $rdp
                               --rdp
                             #end if
@@ -45,7 +50,7 @@
     <param name="ref_file" type="select" label="Using reference database" help="Select reference from the list">
             <options from_data_table="frogs_db"></options>
       <validator type="no_options" message="A built-in database is not available" />
-    </param> 
+    </param>
     <param name="rdp" type="boolean" label="Also perform RDP assignation?" help="Taxonomy affiliation will be perform thanks to Blast. This option allow you to perform it also with RDP classifier (default No)" />
     <param name="taxonomic_ranks" type="text" label="Taxonomic ranks" help="The ordered taxonomic ranks levels stored in the taxonomical reference. Each rank is separated by one space." optional="false" value="Domain Phylum Class Order Family Genus Species" size="80" />
     <!-- Files -->
@@ -70,10 +75,7 @@
 
     <help>
 
-.. image:: static/images/FROGS_logo.png 
-   :height: 144
-   :width: 110
-
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -95,7 +97,7 @@
 The sequences (format `FASTA &lt;https://en.wikipedia.org/wiki/FASTA_format&gt;`_).
 
 **Abundance file**:
- 
+
 The abundance of each OTU in each sample (format `BIOM &lt;http://biom-format.org/&gt;`_).
 
 .. class:: h3
@@ -109,8 +111,8 @@
 **Summary file** (report.html):
 
  This file presents the number of sequences affiliated by blast, and the number of multi-affiliation (format `HTML &lt;https://en.wikipedia.org/wiki/HTML&gt;`_).
- 
- .. image:: static/images/FROGS_affiliation_summary.png 
+
+ .. image:: static/images/FROGS_affiliation_summary.png
    :height: 975
    :width: 867
 
@@ -124,13 +126,13 @@
 
 How it works
 
-.. csv-table:: 
+.. csv-table::
    :header: "Steps", "Description"
    :widths: 5, 150
    :class: table table-striped
 
-   "1", "`RDPClassifier &lt;https://rdp.cme.msu.edu/tutorials/classifier/RDPtutorial_RDP_classifier.html&gt;`_ may be used with database to associate to each OTU a taxonomy and a bootstrap (example: *Bacteria;(1.0);Firmicutes;(1.0);Clostridia;(1.0);Clostridiales;(1.0);Clostridiaceae 1;(1.0);Clostridium sensu stricto;(1.0);*)."
-   "2", "`blastn+ &lt;http://blast.ncbi.nlm.nih.gov/&gt;`_ or `needlall &lt;http://emboss.sourceforge.net/apps/release/6.6/emboss/apps/needleall.html&gt;`_ is used to find alignment between each OTU and the database. Only the bests hits with the same score are reported. blastn+ is used for merged read pair, and needall is used for artificially combined sequence. For each alignment returned, several metrics are computed: identity percentage, coverage percentage, and alignment length"
+   "1", "`RDPClassifier &lt;http://rdp.cme.msu.edu/classifier/classifier.jsp&gt;`_ may be used with database to associate to each OTU a taxonomy and a bootstrap (example: *Bacteria;(1.0);Firmicutes;(1.0);Clostridia;(1.0);Clostridiales;(1.0);Clostridiaceae 1;(1.0);Clostridium sensu stricto;(1.0);*)."
+   "2", "`blastn+ &lt;https://blast.ncbi.nlm.nih.gov/Blast.cgi&gt;`_ or `needlall &lt;http://emboss.sourceforge.net/apps/release/6.6/emboss/apps/needleall.html&gt;`_ is used to find alignment between each OTU and the database. Only the bests hits with the same score are reported. blastn+ is used for merged read pair, and needall is used for artificially combined sequence. For each alignment returned, several metrics are computed: identity percentage, coverage percentage, and alignment length"
    "3", "For each OTU with several blastn+/needlall alignment results a consensus is determined on each taxonomic level. If all the taxa at a taxonomic rank are identical the taxon name is reported otherwise *Multi-affiliation* is reported. For example, if you have an OTU with two equivalent hits, associated to *Bacteria;Proteobacteria;Gamma Proteobacteria;Enterobacteriales*, and *Bacteria;Proteobacteria;Beta Proteobacteria;Methylophilales*, the consensus will be *Bacteria;Proteobacteria;Multi-affiliation;Multi-affiliation*."
 
 .. class:: infomark page-header h2
@@ -167,7 +169,7 @@
 * Case 2: very large ITS1 “FROGS combined” shorter than the real sequence
   % sequenced bases identity = (250 + 250 ) / (600 - 100) = 100%
 
-This calculation allows to return 100% of identity on sequenced bases for “FROGS combined” shorter or longer than reality in case of perfect sequencing, and a smaller percentage of identity in the case of small overlap repeat kept in FROGS combined sequence. 
+This calculation allows to return 100% of identity on sequenced bases for “FROGS combined” shorter or longer than reality in case of perfect sequencing, and a smaller percentage of identity in the case of small overlap repeat kept in FROGS combined sequence.
 
 .. class:: infomark page-header h2
 
@@ -179,17 +181,12 @@
 As you can see the affiliation of each OTU is not human readable in outputed abundance file. We provide a tools to convert these BIOM file in tabulated file, see the **FROGS BIOM to TSV** tool.
 
 
-----
+@HELP_CONTACT@
 
-**Contact**
-
-Contacts: frogs-support@inrae.fr
+    </help>
 
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
+    <citations>
+        <expand macro="citations" />
+    </citations>
 
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
-
-  </help>
 </tool>
--- a/affiliation_filters.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/affiliation_filters.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,12 +15,16 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool id="FROGS_affiliation_filters" name="FROGS Affiliation Filters" version="3.2.3.1">
+<tool id="FROGS_affiliation_filters" name="FROGS Affiliation Filters" version="@TOOL_VERSION@+galaxy2">
 	<description>Filters OTUs on several affiliation criteria.</description>
-        <requirements>
-            <requirement type="package" version="3.2.3">frogs</requirement>
-        </requirements>
-        <stdio> 
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements"/>
+
+        <stdio>
                 <exit_code range="1:" />
                 <exit_code range=":-1" />
         </stdio>
@@ -28,26 +32,26 @@
 	<command>
 
 		affiliation_filters.py
-			--input-biom $input_biom  
-			--input-fasta $input_fasta
-			--output-biom $output_biom
-			--impacted $output_impacted
-			--impacted-multihit $output_multihit
-			--summary $output_summary
+			--input-biom '$input_biom'
+			--input-fasta '$input_fasta'
+			--output-biom '$output_biom'
+			--impacted '$output_impacted'
+			--impacted-multihit '$output_multihit'
+			--summary '$output_summary'
 
 			#if $conditional_mode.mode == "delete"
 				--delete
-				--output-fasta $output_fasta
+				--output-fasta '$output_fasta'
 			#else
 				--mask
 			#end if
 
 			--taxonomic-ranks $taxonomic_ranks
 
-			#if $rdp.rdp_rank
-				--min-rdp-bootstrap $rdp.rdp_rank:$rdp.rdp_bootstrap
+			#if '$rdp.rdp_rank'
+				--min-rdp-bootstrap '$rdp.rdp_rank:$rdp.rdp_bootstrap'
 			#end if
-		
+
 			#if $blast.min_blast_length
 				--min-blast-length $blast.min_blast_length
 			#end if
@@ -89,7 +93,7 @@
 		</conditional>
 
 		<section name="blast" title="Filter on Blast affiliations" expanded="true" >
-			<param name="max_blast_evalue" type="float" min="0.0" max="1.0" optional="true" label="Maximum e-value (between 0 and 1)" size="5" help="Fill the field only if you want this treatment" /> 
+			<param name="max_blast_evalue" type="float" min="0.0" max="1.0" optional="true" label="Maximum e-value (between 0 and 1)" size="5" help="Fill the field only if you want this treatment" />
 			<param name="min_blast_identity" type="float" min="0.0" max="1.0" optional="true" label="Minimum identity % (between 0 and 1)" size="5" help="Fill the field only if you want this treatment" />
 			<param name="min_blast_coverage" type="float" min="0.0" max="1.0" optional="true" label="Minimum coverage % (between 0 and 1)" size="5" help="Fill the field only if you want this treatment" />
 			<param name="min_blast_length" type="integer" optional="true" label="Minimum alignment length" size="5" help="Fill the field only if you want this treatment" />
@@ -117,7 +121,7 @@
 	<tests>
 		<test>
 			<param name="input_fasta" value="references/04-filters.fasta" />
-            <param name="input_biom" value="references/06-affiliation.biom" />    
+            <param name="input_biom" value="references/06-affiliation.biom" />
 		    <conditional name="conditional_mode">
 				<param name="mode" value="hide"/>
 		    </conditional>
@@ -140,7 +144,7 @@
 		</test>
 		<test>
 			<param name="input_fasta" value="references/04-filters.fasta" />
-            <param name="input_biom" value="references/06-affiliation.biom" />    
+            <param name="input_biom" value="references/06-affiliation.biom" />
 		    <conditional name="conditional_mode">
 				<param name="mode" value="delete"/>
 		    </conditional>
@@ -165,11 +169,7 @@
 	</tests>
 	<help>
 
-.. image:: static/images/FROGS_logo.png
-   :height: 144
-   :width: 110
-
-
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -180,7 +180,7 @@
  - for RDP taxonomy : a minimal bootstrap threshold at a specific rank
 
  - for Blast taxonomy : a minimal identity rate, coverage rate, or alignment length, or a maximal evalue, or the absence of full or partial taxon name.
- 
+
 
 .. class:: infomark page-header h2
 
@@ -228,7 +228,7 @@
 
 How it works
 
-.. csv-table:: 
+.. csv-table::
    :header: "Steps", "description"
    :widths: 10, 150
    :class: table table-striped
@@ -249,7 +249,7 @@
 - Blast %identity and %coverage less than 100
 - Blast taxonomies with "unknown species"
 
-What will append in these different cases in deleting or hidding mode: 
+What will append in these different cases in deleting or hidding mode:
 
 - Cluster 1:
 
@@ -257,7 +257,7 @@
 
 The RDP taxonomy does not respect the RDP boostrap threshold, but all blast affiliation criteria are respected.
 
-In deleting mode, Cluster_1 will be removed. 
+In deleting mode, Cluster_1 will be removed.
 In the summary.html, it will be considered as "Removed", and if the RDP taxonomy and/or the Blast taxonomy is/are not kept thanks to an other OTU, the RDP/Blast taxonomy(ies) will be considered as lost.
 
 In hidding mode, RDP taxonomy will be removed, blast taxonomy will remain unchanged and Cluster_1 will be kept.
@@ -269,7 +269,7 @@
 
 The RDP taxonomy respects the RDP boostrap threshold, but none of the blast affiliations respect all the blast criteria.
 
-In deleting mode, Cluster_1 will be removed. 
+In deleting mode, Cluster_1 will be removed.
 In the summary.html, it will be considered as "Removed", and if the two blast taxonomies are not kept thanks to others OTUs, they will be considered as lost. In the same way, if there is no other OTU, affiliated to Sulfurimonas genus but with an ambiguous species, 1 Multi-affilaition will be considered as lost in the summary.html. And idem for the RDP taxonomy.
 
 In hidding mode, RDP taxonomy will be remain unchanged, blast taxonomy will be removed and Cluster_2 will be kept.
@@ -281,21 +281,16 @@
 
 The RDP taxonomy respects the RDP boostrap threshold, and one of the two blast affiliations respect all the blast criteria.
 
-In both deleting and hidding mode, Cluster_1 will be kept. 
+In both deleting and hidding mode, Cluster_1 will be kept.
 In the summary.html, it will be considered as "Modified", as the RDP taxonomy will remain unchanged and the blast taxonomy will be updated.
 If no other OTU is affiliated to the "unknown species" of the Fusobacterium genu, this species will be considered as lost. In the same way if no other OTU is affiliated to Fusobacterium genus but with an ambiguous species, 1 Multi-affilaition at the Species level will be considered as lost in the summary.html.
 
-----
-
-**Contact**
-
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
 	</help>
+
+	<citations>
+		<expand macro="citations" />
+	</citations>
+	
 </tool>
--- a/affiliation_postprocess.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/affiliation_postprocess.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,27 +15,31 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool id="FROGS_affiliation_postprocess" name="FROGS Affiliation postprocess" version="3.2.3.1">
+<tool id="FROGS_affiliation_postprocess" name="FROGS Affiliation postprocess" version="@TOOL_VERSION@+galaxy2">
 	<description>Optionnal step to resolve inclusive amplicon ambiguities and to aggregate OTUs based on alignment metrics</description>
- 	<requirements>
-    	<requirement type="package" version="3.2.3">frogs</requirement>
-  	</requirements>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements"/>
+
   	<stdio>
 	    <exit_code range="1:" />
 	    <exit_code range=":-1" />
   	</stdio>
 	<command>
-		affiliation_postprocess.py 
+		affiliation_postprocess.py
 		#if $is_HVL.HVL_amplicon
-            --reference $is_HVL.ref_file.fields.path
+            --reference '$is_HVL.ref_file.fields.path'
         #end if
 		--identity $identity
 		--coverage $coverage
-                --input-biom $input_biom
-                --input-fasta $input_fasta
-                --output-biom $biom_out
-                --output-fasta $fasta_out
-                --output-compo $compo_out
+                --input-biom '$input_biom'
+                --input-fasta '$input_fasta'
+                --output-biom '$biom_out'
+                --output-fasta '$fasta_out'
+                --output-compo '$compo_out'
 	</command>
 	<inputs>
 		<!-- Files -->
@@ -49,7 +53,7 @@
 	        			<validator type="no_options" message="A built-in database is not available" />
     					<!--column name="name" index="0"/>
     					<column name="value" index="1"/-->
-				</param> 
+				</param>
       			</when>
       			<when value="false"/>
     		</conditional>
@@ -77,10 +81,7 @@
 	</tests>
 	<help>
 
-.. image:: static/images/FROGS_logo.png
-   :height: 144
-   :width: 110
-
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -98,7 +99,7 @@
 Inputs
 
 **Abundance file**:
- 
+
 The abundance of each OTU in each sample (format `BIOM &lt;http://biom-format.org/&gt;`_) with taxonomic affiliations metadata.
 
 **Sequence file**:
@@ -120,7 +121,7 @@
 
 **Sequence file**:
 
-The sequences (format `FASTA &lt;https://en.wikipedia.org/wiki/FASTA_format&gt;`_) of each aggregated OTU seed. 
+The sequences (format `FASTA &lt;https://en.wikipedia.org/wiki/FASTA_format&gt;`_) of each aggregated OTU seed.
 
 **Composition file**:
 
@@ -134,19 +135,14 @@
 
 Second step is the OTUs aggregation that share the same taxonomy inferred on alignment metrics.
 We start with the most abundant OTU. If an OTU shares at least one affiliation with another OTU with at least I% of identity and C% of alignment coverage, the OTUs are aggregated together : the different affiliations, are merged, blast concensus taxonomy is updated and abundance counts are summed. The seed of the most abundant OTU is kept.
-----
 
-**Contact**
-
-Support: please contact first your galaxy support team. 
 
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
 	</help>
+
+	<citations>
+		<expand macro="citations" />
+	</citations>
+	
 </tool>
--- a/affiliations_stat.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/affiliations_stat.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,37 +15,41 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool id="FROGS_affiliations_stat" name="FROGS Affiliations stat" version="3.2.3.1">
+<tool id="FROGS_affiliations_stat" name="FROGS Affiliations stat" version="@TOOL_VERSION@+galaxy2">
 	<description>Process some metrics on taxonomies.</description>
-        <requirements>
-                <requirement type="package" version="3.2.3">frogs</requirement>
-        </requirements>
-        <stdio> 
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements"/>
+
+        <stdio>
                 <exit_code range="1:" />
                 <exit_code range=":-1" />
         </stdio>
 	<command>
-		affiliations_stat.py 
-		    --input-biom $biom
-		    --output-file $summary_file
+		affiliations_stat.py
+		    --input-biom '$biom'
+		    --output-file '$summary_file'
 		    --taxonomic-ranks $taxonomic_ranks
 		    --rarefaction-ranks $rarefaction_ranks
 		    #if $affiliation.affiliation_type == "FROGS_blast"
-		    	--multiple-tag "blast_affiliations"
-		        --tax-consensus-tag "blast_taxonomy"
-		        --identity-tag "perc_identity"
-		        --coverage-tag "perc_query_coverage"
+		    	--multiple-tag 'blast_affiliations'
+		        --tax-consensus-tag 'blast_taxonomy'
+		        --identity-tag 'perc_identity'
+		        --coverage-tag 'perc_query_coverage'
 			#else if $affiliation.affiliation_type == "FROGS_rdp"
-				--taxonomy-tag "rdp_taxonomy"
-				--bootstrap-tag "rdp_bootstrap"
+				--taxonomy-tag 'rdp_taxonomy'
+				--bootstrap-tag 'rdp_bootstrap'
 			#else
-				--taxonomy-tag "$affiliation.taxonomy_tag"
+				--taxonomy-tag '$affiliation.taxonomy_tag'
 				#if $affiliation.bootstrap_tag
-					--bootstrap-tag "$affiliation.bootstrap_tag"
+					--bootstrap-tag '$affiliation.bootstrap_tag'
 				#end if
 				#if $affiliation.identity_tag and $affiliation.coverage_tag
-					--identity-tag "$affiliation.identity_tag"
-					--coverage-tag "$affiliation.coverage_tag"
+					--identity-tag '$affiliation.identity_tag'
+					--coverage-tag '$affiliation.coverage_tag'
 				#end if
 			#end if
 	</command>
@@ -92,10 +96,7 @@
 	</tests>
 	<help>
 
-.. image:: static/images/FROGS_logo.png
-   :height: 144
-   :width: 110
-
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -113,7 +114,7 @@
 Input
 
 **Abundance file**:
- 
+
 The abundance and affiliation of each OTUs (format `BIOM &lt;http://biom-format.org/&gt;`_). This file can be produced by FROGS Affiliation OTU.
 
 The FROGS's tools working on clusters and others metagenomic workflows produce files in BIOM format.
@@ -125,12 +126,12 @@
 **Summary file** (summary.html):
 
  OTUs taxonomies and affiliations metrics (format `HTML &lt;https://en.wikipedia.org/wiki/HTML&gt;`_):
- 
+
   *-Taxonomy distribution*: display the distribution of each taxon and the rarefaction for each taxonomic rank and for each sample
-  
+
   .. image:: static/images/FROGS_affiliation_stat_taxonomies.png
     :height: 380
-    :width: 891  
+    :width: 891
 
   .. image:: static/images/FROGS_affiliation_stat_rarefaction.png
     :height: 380
@@ -139,7 +140,7 @@
   .. image:: static/images/FROGS_affiliation_stat_sunburst.png
     :height: 380
     :width: 440
-  
+
   -Bootstrap distribution: display for affiliation methods with bootstrap the bootstrap on each taxonomic rank
 
   .. image:: static/images/FROGS_affiliation_stat_bootstrap.png
@@ -153,18 +154,12 @@
     :width: 859
 
 
-
-----
-
-**Contact**
-
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
 	</help>
+
+	<citations>
+		<expand macro="citations" />
+	</citations>
+	
 </tool>
--- a/biom_to_stdBiom.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/biom_to_stdBiom.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,20 +15,24 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool id="FROGS_biom_to_stdBiom" name="FROGS BIOM to std BIOM" version="3.2.3.1">
+<tool id="FROGS_biom_to_stdBiom" name="FROGS BIOM to std BIOM" version="@TOOL_VERSION@+galaxy2">
 	<description>Converts a FROGS BIOM in fully compatible BIOM.</description>
-        <requirements>
-            <requirement type="package" version="3.2.3">frogs</requirement>
-        </requirements>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements"/>
+
         <stdio>
                 <exit_code range="1:" />
                 <exit_code range=":-1" />
         </stdio>
 	<command>
-		biom_to_stdBiom.py 
-		                --input-biom $input_biom
-		                --output-biom $output_biom
-		                --output-metadata $output_blast_details
+		biom_to_stdBiom.py
+		                --input-biom '$input_biom'
+		                --output-biom '$output_biom'
+		                --output-metadata '$output_blast_details'
 	</command>
 	<inputs>
 		<!-- Files -->
@@ -47,10 +51,7 @@
 	</tests>
 	<help>
 
-.. image:: static/images/FROGS_logo.png
-   :height: 144
-   :width: 110
-
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -65,7 +66,7 @@
 Inputs
 
 **Abundance file**:
- 
+
 The abundance of each cluster in each sample (format `BIOM &lt;http://biom-format.org/&gt;`_).
 
 .. class:: h3
@@ -89,17 +90,12 @@
 
 
 
-----
-
-**Contact**
-
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
 	</help>
+
+	<citations>
+		<expand macro="citations" />
+	</citations>
+	
 </tool>
--- a/biom_to_tsv.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/biom_to_tsv.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,25 +15,29 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool id="FROGS_biom_to_tsv" name="FROGS BIOM to TSV" version="3.2.3.1">
+<tool id="FROGS_biom_to_tsv" name="FROGS BIOM to TSV" version="@TOOL_VERSION@+galaxy2">
 	<description>Converts a BIOM file in TSV file.</description>
-        <requirements>
-            <requirement type="package" version="3.2.3">frogs</requirement>
-        </requirements>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements"/>
+
         <stdio>
                 <exit_code range="1:" />
                 <exit_code range=":-1" />
         </stdio>
 	<command>
-		biom_to_tsv.py 
-		                --input-biom $biom_file
+		biom_to_tsv.py
+		                --input-biom '$biom_file'
 		              #if $sequence_file
-		                --input-fasta $sequence_file
+		                --input-fasta '$sequence_file'
 		              #end if
-		                --output-tsv $tsv_file
+		                --output-tsv '$tsv_file'
 		              #if $extract_multi_align
-		                --output-multi-affi $multi_affi_file
-		              #end if   
+		                --output-multi-affi '$multi_affi_file'
+		              #end if
 	</command>
 	<inputs>
 		<!-- Files -->
@@ -59,10 +63,7 @@
 	</tests>
 	<help>
 
-.. image:: static/images/FROGS_logo.png
-   :height: 144
-   :width: 110
-
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -75,7 +76,7 @@
 Inputs
 
 **Abundance file**:
- 
+
 The abundance of each cluster in each sample (format `BIOM &lt;http://biom-format.org/&gt;`_).
 
 **Sequence file [optional]**:
@@ -101,7 +102,7 @@
 
 How it works
 
-FROGS Biom to Tsv will search if any metadata are available, and the OTU sequence if fasta file is precised. Then it will extract the OTU name, sum the sample abundance, and extract the detailed abundance for each sample. Finally it will write all these fields separated by tabulation in the TSV file. 
+FROGS Biom to Tsv will search if any metadata are available, and the OTU sequence if fasta file is precised. Then it will extract the OTU name, sum the sample abundance, and extract the detailed abundance for each sample. Finally it will write all these fields separated by tabulation in the TSV file.
 
 
 .. class:: infomark page-header h2
@@ -111,17 +112,12 @@
 This output tsv file is easily readable in any spreadsheet software. Be aware that these software have a number of line limit (1 048 576 for Excel and LibreOffice calc ate least). If you have more OTU, use **FROGS Filters** to extract for example the most abundant OTU before converting your BIOM abundance table in TSV file.
 
 
-----
-
-**Contact**
-
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
 	</help>
+
+	<citations>
+		<expand macro="citations" />
+	</citations>
+	
 </tool>
--- a/clustering.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/clustering.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,25 +15,30 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool id="FROGS_clustering" name="FROGS Clustering swarm" version="3.2.3.1">
+<tool id="FROGS_clustering" name="FROGS Clustering swarm" version="@TOOL_VERSION@+galaxy2">
     <description>Single-linkage clustering on sequences</description>
-        <requirements>
-                <requirement type="package" version="3.2.3">frogs</requirement>
-                <requirement type="package" version="3.0.0">swarm</requirement>
-        </requirements>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements">
+        <requirement type="package" version="3.0.0">swarm</requirement>
+    </expand>
+
         <stdio>
                 <exit_code range="1:" />
                 <exit_code range=":-1" />
         </stdio>
     <command>
-        clustering.py 
+        clustering.py
                         --nb-cpus \${GALAXY_SLOTS:-1}
-                        --input-fasta $sequence_file
-                        --input-count $count_file
-                        --output-biom $abundance_biom
-                        --output-fasta $seed_file
-                        --output-compo $swarms_composition
-                        
+                        --input-fasta '$sequence_file'
+                        --input-count '$count_file'
+                        --output-biom '$abundance_biom'
+                        --output-fasta '$seed_file'
+                        --output-compo '$swarms_composition'
+
                         #if $FROGS_guidelines.guidelines_version == "3.2"
                         	--distance $FROGS_guidelines.maximal_distance
                             $FROGS_guidelines.fastidious
@@ -43,7 +48,7 @@
                         	--distance $FROGS_guidelines.maximal_distance
                         	$FROGS_guidelines.denoising
                         #end if
-                        
+
     </command>
     <inputs>
         <!-- Files -->
@@ -82,7 +87,7 @@
             <output name="seed_file" file="references/02-clustering_denoising.fasta" compare="diff" lines_diff="0" />
             <output name="swarms_composition" file="references/02-clustering_denoising_compo.tsv" compare="diff" lines_diff="0" />
             <output name="abundance_biom" file="references/02-clustering_denoising.biom" compare="sim_size" delta="0"  />
-        </test>    
+        </test>
         <test>
             <param name="sequence_file" value="references/01-prepro-vsearch.fasta"/>
             <param name="count_file" value="references/01-prepro-vsearch.tsv"/>
@@ -94,14 +99,11 @@
             <output name="seed_file" file="references/02-clustering_fastidious.fasta" compare="diff" lines_diff="0" />
             <output name="swarms_composition" file="references/02-clustering_fastidious_compo.tsv" compare="diff" lines_diff="0" />
             <output name="abundance_biom" file="references/02-clustering_fastidious.biom" compare="sim_size" delta="0"  />
-        </test>  
+        </test>
     </tests>
     <help>
 
-.. image:: static/images/FROGS_logo.png 
-   :height: 144
-   :width: 110
-
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -132,7 +134,7 @@
 
 Example:
 
-.. csv-table:: 
+.. csv-table::
    :header: "#id", "splA","splB"
    :widths: 10,10,10
    :class: table table-striped
@@ -153,7 +155,7 @@
 
  The clusters representative sequences (format `FASTA &lt;https://en.wikipedia.org/wiki/FASTA_format&gt;`_).
 
-   
+
 **Clusters composition** (swarms_composition.tsv):
 
  A text file representing the read composition of each cluster (format txt). Each line represents one cluster and is composed of read identifier separated by space.
@@ -163,7 +165,7 @@
 
 How it works
 
-.. csv-table:: 
+.. csv-table::
    :header: "Steps", "Without denoising", "With fastidious option (recommendations sincce FROGS 3.2)", "With denoising step (recommendations until FROGS 3.1)"
    :widths: 5, 150, 150, 150
    :class: table table-striped
@@ -176,10 +178,10 @@
 **Swarm focus**
 
 Swarm use an iterative growth process and the use of sequence abundance values to delineate OTUs.
-  
+
 .. image:: static/images/FROGS_cluster_swarm.png
    :height: 223
-   :width: 666    
+   :width: 666
 
 In each groth step the sequence of the previous step is used to find the others sequences with a number of differences inferior or equal to the "Aggregation distance".
 
@@ -190,7 +192,7 @@
 .. image:: static/images/FROGS_cluster_fastidious.png
    :height: 319
    :width: 681
-    
+
 .. class:: infomark page-header h2
 
 
@@ -203,20 +205,17 @@
 The denoising strategy was recommended until FROGS 3.1
 
 The denoising step allows to build very fine clusters with minimal differences. In this case, the number of differences between sequences of each crowns is equal to 1. This first clustering is extremly quick. After the denoising, a second swarm is run with an aggregation distance >1 as you have configured, between seeds from this first clustering. We recommended a distance of 3.
-        
+
 To have some metrics on your clusters, you can use the tool **FROGS Clusters Stat**.
 
-----
 
-**Contact**
-
-Contacts: frogs-support@inrae.fr
 
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
     </help>
+
+    <citations>
+        <expand macro="citations" />
+    </citations>
+    
 </tool>
--- a/clusters_stat.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/clusters_stat.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,19 +15,23 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool id="FROGS_clusters_stat" name="FROGS Clusters stat" version="3.2.3.1">
+<tool id="FROGS_clusters_stat" name="FROGS Clusters stat" version="@TOOL_VERSION@+galaxy2">
 	<description>Process some metrics on clusters.</description>
-        <requirements>
-                <requirement type="package" version="3.2.3">frogs</requirement>
-        </requirements>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements"/>
+
         <stdio>
                 <exit_code range="1:" />
                 <exit_code range=":-1" />
         </stdio>
 	<command>
-		clusters_stat.py 
-		                 --input-biom $biom
-		                 --output-file $summary_file
+		clusters_stat.py
+		                 --input-biom '$biom'
+		                 --output-file '$summary_file'
 	</command>
 	<inputs>
 		<param format="biom1" name="biom" type="data" label="Abundance file" help="Clusters abundance (format: BIOM)." optional="false" />
@@ -38,15 +42,12 @@
 	<tests>
 		<test>
 			<param name="biom" value="references/09-normalisation.biom"/>
-			<output name="summary_file" value="references/10-clustersStat.html" compare="diff" lines_diff="0"/>  
+			<output name="summary_file" value="references/10-clustersStat.html" compare="diff" lines_diff="0"/>
 		</test>
 	</tests>
 	<help>
 
-.. image:: static/images/FROGS_logo.png
-   :height: 144
-   :width: 110
-
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -64,7 +65,7 @@
 Input
 
 **Abundance file**:
- 
+
 The abundance of each cluster in each sample (format `BIOM &lt;http://biom-format.org/&gt;`_).
 
 The FROGS's tools working on clusters and others metagenomic workflows produce files in BIOM format.
@@ -74,7 +75,7 @@
 Output
 
 **Summary file** (summary.html):
- 
+
  *Clusters distribution* : describes the sizes distribution of all clusters thank to boxplot and tables
 
  .. image:: static/images/FROGS_cluster_stat_clusterDistrib1.png
@@ -102,17 +103,13 @@
 This is a very usefull tool to see the evolution of your OTU. Do not hesitate to run this tool after each FROGS step beginning at the clustering step.
 
 
-----
 
-**Contact**
-
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
 	</help>
+
+	<citations>
+		<expand macro="citations" />
+	</citations>
+	
 </tool>
--- a/demultiplex.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/demultiplex.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,12 +15,15 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool id="FROGS_demultiplex" name="FROGS Demultiplex reads" version="3.2.3.1">
+<tool id="FROGS_demultiplex" name="FROGS Demultiplex reads" version="@TOOL_VERSION@+galaxy2">
 	<description>Attribute reads to samples in function of inner barcode.</description>
-        <requirements>
-            <requirement type="binary">perl</requirement>
-            <requirement type="package" version="3.2.3">frogs</requirement>
-        </requirements>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements" />
+
         <stdio>
                 <exit_code range="1:" />
                 <exit_code range=":-1" />
@@ -28,22 +31,22 @@
 	<command>
 		demultiplex.py
 		#if str( $fastq_input.fastq_input_selector ) == "paired":
-		    --input-R1 '${fastq_input.fastq_input1}'            
+		    --input-R1 '${fastq_input.fastq_input1}'
 		    --input-R2 '${fastq_input.fastq_input2}'
 		#else:
 		    --input-R1 '${fastq_input.fastq_input1}'
-		#end if              
-		    --input-barcode $barcode_file
+		#end if
+		    --input-barcode '$barcode_file'
 		    --mismatches $mismatches
-		    --end $end
-		    --summary $summary
-		    --output-demultiplexed $demultiplexed_archive
-		    --output-excluded $undemultiplexed_archive
+		    --end '$end'
+		    --summary '$summary'
+		    --output-demultiplexed '$demultiplexed_archive'
+		    --output-excluded '$undemultiplexed_archive'
 	</command>
 	<inputs>
 		<!-- Input file -->
 		<param format="tabular" name="barcode_file" type="data" label="Barcode file" help="This file describes barcodes and samples (one line by sample tabulated separated from barcode sequence(s)). See Help section" optional="false" />
-		
+
 		<conditional name="fastq_input">
 	      	<param name="fastq_input_selector" type="select" label="Single or Paired-end reads" help="Select between paired and single-end data">
 	      		<option value="single">Single</option>
@@ -97,7 +100,7 @@
 
 **Inputs**
 
-.. csv-table:: 
+.. csv-table::
    :header: "Input name", "Meaning"
    :widths: 20, 80
    :class: table table-striped
@@ -118,7 +121,7 @@
 
 **Outputs**
 
-.. csv-table:: 
+.. csv-table::
    :header: "Output name", "Meaning"
    :widths: 20, 80
    :class: table table-striped
@@ -136,13 +139,13 @@
 
 BARCODE_FILE :
  This file is expected to be tabulated
-		
+
  -first column corresponds to the sample name
- 
+
  -second column corresponds to the sequence barcode used
- 
+
  -third column (optional) corresponds to the reverse sequence barcode
- 
+
 .. class:: warningmark
 
  Take care to indicate sequence barcode in the strand of the read, so you may need to reverse complement the reverse barcode sequence
@@ -150,7 +153,7 @@
 .. class:: warningmark
 
  All barcode sequences must have the same length
- 
+
 Example of barcode file: Here the sample is multiplexed by both fragment ends.
 
  .. image:: static/images/FROGS_demultiplex_barcode.png
@@ -181,17 +184,12 @@
 If you have Roche 454 sequences in sff format, you must convert them with some programs like `sff2fastq &lt;https://github.com/indraniel/sff2fastq&gt;`_ or sff_to_fastq (installable in Galaxy)
 
 
-----
-
-**Contact**
-
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
 	</help>
+
+	<citations>
+		<expand macro="citations" />
+	</citations>
+	
 </tool>
--- a/deseq2_preprocess.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/deseq2_preprocess.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,27 +15,29 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool name="FROGSSTAT DESeq2 Preprocess" id="FROGSSTAT_DESeq2_Preprocess" version="3.2.3.1">
+<tool id="FROGSSTAT_DESeq2_Preprocess" name="FROGSSTAT DESeq2 Preprocess" version="@TOOL_VERSION@+galaxy2">
   <description>import a Phyloseq object and prepare it for DESeq2 differential abundance analysis </description>
-  <requirements>
-      <requirement type="package" version="3.2.3">frogs</requirement>
-      <requirement type="package" version="4.0.5">r-base</requirement>
-      <requirement type="package" version="4.0">r-essentials</requirement>
-      <requirement type="package" version="1.34.0">bioconductor-phyloseq</requirement>
-      <requirement type="package" version="1.30.1">bioconductor-deseq2</requirement>
-      <requirement type="package" version="1.6.6">r-optparse</requirement>
-  </requirements>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements_phyloseq">
+        <requirement type="package" version="1.30.1">bioconductor-deseq2</requirement>
+        <requirement type="package" version="1.6.6">r-optparse</requirement>
+    </expand>
+
   <stdio>
       <exit_code range="1:" />
       <exit_code range=":-1" />
   </stdio>
-	<command>deseq2_preprocess.py --data $data
+	<command>deseq2_preprocess.py --data '$data'
                                 #if $multiple.seconde
-                                  --var $var1${multiple.mod}${multiple.var2}
+                                  --var '$var1${multiple.mod}${multiple.var2}'
                                 #else
-                                  --var $var1
+                                  --var '$var1'
                                 #end if
-                                --out-Rdata $dds
+                                --out-Rdata '$dds'
 	</command>
     <inputs>
 		  <!-- Files -->
@@ -48,7 +50,7 @@
       </param>
 		  <conditional name="multiple">
         <param name="seconde" type="boolean" label="Do you want to correct for a confounding factor?" help="If yes, specifiy counfouding factor." optional="false" />
-		    <when value="false"></when>           
+		    <when value="false"></when>
 		    <when value="true">
           <param name="var2" type="text" label="Variable 2" help="Confounding factor. Ex: Gender, etc." optional="false" value="" size="20"/>
           <param name="mod" type="select" multiple="false" help="Choose an additive model (+) if the effects of Treatment and Gender are independent. Choose a model with interaction (*) if the effect of Treatment is expected to depend on Gender." label="Type of model">
@@ -65,21 +67,18 @@
       <test>
          <param name="data" value="references/16-phylo_import.Rdata" />
          <param name="var1" value="EnvType"/>
-         <output name="dds" file="references/23-deseq2_preprocess.Rdata" compare="sim_size" delta="0"/>
+         <output name="dds" file="references/23-deseq2_preprocess.Rdata" compare="sim_size" delta="50"/>
       </test>
     </tests>
     <help>
 
-.. image:: static/images/FROGS_logo.png 
-   :height: 144
-   :width: 110
-
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
 What it does
 
-Launch Rscript to compute differential abundance analysis using `DESeq2 &lt;https://bioconductor.org/packages/release/bioc/html/DESeq2.html&gt;`_ on a `Phyloseq &lt;https://joey711.github.io/phyloseq/&gt;`_ object. 
+Launch Rscript to compute differential abundance analysis using `DESeq2 &lt;https://bioconductor.org/packages/release/bioc/html/DESeq2.html&gt;`_ on a `Phyloseq &lt;https://joey711.github.io/phyloseq/&gt;`_ object.
 
 .. class:: infomark page-header h2
 
@@ -107,7 +106,7 @@
 
 .. class:: infomark page-header h2
 
-How it works 
+How it works
 
 The DESeq function performs a default analysis through the steps:
 
@@ -125,15 +124,12 @@
 - + for independant variables
 - * for interacting variables
 
-**Contact**
+@HELP_CONTACT@
 
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
+  </help>
 
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
-	
-	</help>
+  <citations>
+    <expand macro="citations" />
+  </citations>
+  
 </tool>
--- a/deseq2_visualisation.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/deseq2_visualisation.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,28 +15,30 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool name="FROGSTAT Deseq2 Visualisation" id="FROGSSTAT_DESeq2_Visualisation" version="3.2.3.1">
+<tool id="FROGSSTAT_DESeq2_Visualisation" name="FROGSTAT Deseq2 Visualisation" version="@TOOL_VERSION@+galaxy2">
     <description>to extract and visualise differentially abundant OTUs</description>
-    <requirements>
-        <requirement type="package" version="3.2.3">frogs</requirement>
-        <requirement type="package" version="4.0.5">r-base</requirement>
-        <requirement type="package" version="4.0">r-essentials</requirement>
-        <requirement type="package" version="1.34.0">bioconductor-phyloseq</requirement>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements_phyloseq">
         <requirement type="package" version="1.30.1">bioconductor-deseq2</requirement>
         <requirement type="package" version="0.18">r-dt</requirement>
-    </requirements>
+    </expand>
+
     <stdio>
         <exit_code range="1:" />
         <exit_code range=":-1" />
     </stdio>
-    <command>deseq2_visualisation.py --phyloseqData $input_phyloseq
-                                     --dds $input_DDS
-                                     --var $var
+    <command>deseq2_visualisation.py --phyloseqData '$input_phyloseq'
+                                     --dds '$input_DDS'
+                                     --var '$var'
                                      #if $varType.vartType_selected == "qual":
-                                         --mod1 $varType.mod1 --mod2 $varType.mod2
+                                         --mod1 '$varType.mod1' --mod2 '$varType.mod2'
                                      #end if
                                      --padj $padj
-                                     --html $html
+                                     --html '$html'
     </command>
     <inputs>
         <!-- Files -->
@@ -45,7 +47,7 @@
         </param>
         <param format="rdata" name="input_DDS" type="data" label="DESeq2 object (format rdata)" help="This is the result of FROGSSTAT DESeq2 Preprocess tool." optional="false">
             <validator type="empty_field" message="This parameter is required." />
-        </param>                    
+        </param>
         <!-- Parameters -->
         <param name="var" type="text" label="Experimental variable" help="The factor suspected to have an effect on OTUs' abundances (one of the variables used in FROGS DESeq2 Preprocess tool). Ex : Treatment" optional="false" value="" size="20">
             <validator type="empty_field" message="This parameter is required." />
@@ -65,9 +67,9 @@
             </when>
             <when value="quant"/>
         </conditional>
-        <param name="padj" type="text" label="Adjusted p-value threshold" help="Threshold used for statistical significance of the differentially abundant OTUs analysis." optional="false" value="0.05" size="20">
+        <param name="padj" type="float" label="Adjusted p-value threshold" help="Threshold used for statistical significance of the differentially abundant OTUs analysis." optional="false" value="0.05">
             <validator type="empty_field" message="This parameter is required." />
-        </param>        
+        </param>
     </inputs>
     <outputs>
         <data format="html" name="html" label="${tool.name}: report.nb.html" from_work_dir="report.nb.html"/>
@@ -98,15 +100,13 @@
     </tests>
     <help>
 
-.. image:: static/images/FROGS_logo.png 
-   :height: 144
-   :width: 110
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
 What it does
 
-Launch one Rmarkdown Script to visualise the DESeq2 results. 
+Launch one Rmarkdown Script to visualise the DESeq2 results.
 
 .. class:: infomark page-header h2
 
@@ -130,21 +130,21 @@
 
 **html file** (format `HTML &lt;https://en.wikipedia.org/wiki/HTML&gt;`_): visualisation of "Differential Abundance".
 
-The html file contains Table, Pie Chart, MA plot, Volcano plot and Heatmap plot. If the experimental variable is qualitative, only samples corresponding to the 2 compared conditions are shown in the Heatmap. Otherwise, samples are sorted in increasing order of the experimental variable. 
+The html file contains Table, Pie Chart, MA plot, Volcano plot and Heatmap plot. If the experimental variable is qualitative, only samples corresponding to the 2 compared conditions are shown in the Heatmap. Otherwise, samples are sorted in increasing order of the experimental variable.
 
 * Table containing the differentially abundant OTUs.
 
- .. image:: static/images/FROGS_DESeq2_html_table.png 
+ .. image:: static/images/FROGS_DESeq2_html_table.png
     :height: 216
     :width: 789
 
 * Pie Chart, MA plot and Volcano plot
 
- .. image:: static/images/FROGS_DESeq2_html_pieChart.png 
+ .. image:: static/images/FROGS_DESeq2_html_pieChart.png
     :height: 576
     :width: 768
 
- .. image:: static/images/FROGS_DESeq2_html_MA_plot.png 
+ .. image:: static/images/FROGS_DESeq2_html_MA_plot.png
     :height: 480
     :width: 672
 
@@ -154,7 +154,7 @@
 
 * Heatmap plot corresponding to the differentially abundant OTUs.
 
- .. image:: static/images/FROGS_DESeq2_html_heatmap_plot.png 
+ .. image:: static/images/FROGS_DESeq2_html_heatmap_plot.png
     :height: 576
     :width: 768
 
@@ -166,17 +166,14 @@
 
 You may first precise the variable used to construct the model during the FROGSSTAT DESeq Preprocess step. If you precised variable with a confounding factor (a second variale), you may choose between one of the variables, but remember that you will see the result of this variable corrected by the confounding factor (and reversely) not just the selected variable itself.
 
-If the variable is qualitative (ex: variable Treatment is define by two conditions : treatment1, treatment2, control), you must specify 2 conditions to compare (e.g. treatment1 vs treatment2 or treatment1 vs control, ...). 
+If the variable is qualitative (ex: variable Treatment is define by two conditions : treatment1, treatment2, control), you must specify 2 conditions to compare (e.g. treatment1 vs treatment2 or treatment1 vs control, ...).
 
-**Contact**
+@HELP_CONTACT@
 
-Contacts: frogs-support@inrae.fr
+    </help>
 
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+    <citations>
+        <expand macro="citations" />
+    </citations>
     
-    </help>
 </tool>
Binary file galaxy_project_logo_square.png has changed
--- a/itsx.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/itsx.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,12 +15,17 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool id="FROGS_itsx" name="FROGS ITSx" version="3.2.3.1">
+<tool id="FROGS_itsx" name="FROGS ITSx" version="@TOOL_VERSION@+galaxy2">
 	<description>Extract the highly variable ITS1 and ITS2 subregions from ITS sequences.</description>
-    <requirements>
-        <requirement type="package" version="3.2.3">frogs</requirement>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements">
         <requirement type="package" version="1.1.2">itsx</requirement>
-    </requirements>
+    </expand>
+
     <stdio>
         <exit_code range="1:" />
         <exit_code range=":-1" />
@@ -28,16 +33,16 @@
 	<command>
 					itsx.py
 		                --nb-cpus \${GALAXY_SLOTS:-1}
-		                --region $region
-		                --input-fasta $input_fasta
-		                --input-biom $input_biom
-		                --out-fasta $out_fasta
-		                --out-abundance $out_abundance_biom
-		                --out-removed $out_excluded
-		                --summary $summary_file
-		                --organism-groups $domain
+		                --region '$region'
+		                --input-fasta '$input_fasta'
+		                --input-biom '$input_biom'
+		                --out-fasta '$out_fasta'
+		                --out-abundance '$out_abundance_biom'
+		                --out-removed '$out_excluded'
+		                --summary '$summary_file'
+		                --organism-groups '$domain'
 		                $trim_sequence
-		                
+
 	</command>
 	<inputs>
 		<!-- Files -->
@@ -92,10 +97,7 @@
 	</tests>
 	<help>
 
-.. image:: static/images/FROGS_logo.png 
-   :height: 144
-   :width: 110
-
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -129,10 +131,10 @@
 The sequences (format `FASTA &lt;https://en.wikipedia.org/wiki/FASTA_format&gt;`_).
 
 **Abundance file**:
- 
+
  The abundance of each cluster in each sample (format `BIOM &lt;http://biom-format.org/&gt;`_).
 
-	
+
 .. class:: h3
 
 Outputs
@@ -144,7 +146,7 @@
 **Abundance file** (itsx.biom):
 
  The abundance file with only ITS sequences (format `BIOM &lt;http://biom-format.org/&gt;`_).
- 
+
 **Discarded file** (out_removed.fasta)
 
  The sequence file with discarded sequences.
@@ -158,27 +160,24 @@
 
 How it works
 
-.. csv-table:: 
+.. csv-table::
    :header: "Steps", "Description"
    :widths: 10, 90
    :class: table table-striped
-   
+
    "1", "Predicts positions of the ribosomal genes in the sequences (`ITSx &lt;http://microbiology.se/software/itsx/&gt;`_)."
    "2", "Removes the sequences without prediction of the targeted ITS region (ITS1 or ITS2)."
    "3", "(optional) trim conserved region."
 
 
-----
 
-**Contact**
-
-Contacts: frogs-support@inrae.fr
 
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
 	</help>
+
+	<citations>
+		<expand macro="citations" />
+	</citations>
+	
 </tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+<macros>
+
+    <token name="@TOOL_VERSION@">3.2.3</token>
+
+    <xml name="requirements">
+        <requirements>
+            <requirement type="package" version="@TOOL_VERSION@">frogs</requirement>
+            <yield />
+        </requirements>
+    </xml>
+
+    <xml name="requirements_phyloseq">
+        <expand macro="requirements">
+            <requirement type="package" version="2.11.4">pandoc</requirement>
+            <requirement type="package" version="4.0">r-essentials</requirement>
+            <requirement type="package" version="1.34.0">bioconductor-phyloseq</requirement>
+            <yield />
+        </expand>
+    </xml>
+
+
+    <token name="@HELP_LOGO@">
+.. image:: static/images/FROGS_logo.png
+   :height: 144
+   :width: 110
+
+    </token>
+
+    <token name="@HELP_CONTACT@">
+
+----
+
+**Contact**
+
+Contacts: frogs-support@inrae.fr
+
+Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
+
+Website: http://frogs.toulouse.inrae.fr/
+
+Depending on which kind of amplicon you are working on, please cite one of the two FROGS publications:
+
+    </token>
+
+    <xml name="citations">
+        <citation type="bibtex">
+            @article{10.1093/bioinformatics/btx791,
+                author = {Escudié, Frédéric and Auer, Lucas and Bernard, Maria and Mariadassou, Mahendra and Cauquil, Laurent and Vidal, Katia and Maman, Sarah and Hernandez-Raquet, Guillermina and Combes, Sylvie and Pascal, Géraldine},
+                title = "{FROGS: Find, Rapidly, OTUs with Galaxy Solution}",
+                journal = {Bioinformatics},
+                volume = {34},
+                number = {8},
+                pages = {1287-1294},
+                year = {2018},
+                month = {04},
+                abstract = "{Metagenomics leads to major advances in microbial ecology and biologists need user friendly tools to analyze their data on their own.This Galaxy-supported pipeline, called FROGS, is designed to analyze large sets of amplicon sequences and produce abundance tables of Operational Taxonomic Units (OTUs) and their taxonomic affiliation. The clustering uses Swarm. The chimera removal uses VSEARCH, combined with original cross-sample validation. The taxonomic affiliation returns an innovative multi-affiliation output to highlight databases conflicts and uncertainties. Statistical results and numerous graphical illustrations are produced along the way to monitor the pipeline. FROGS was tested for the detection and quantification of OTUs on real and in silico datasets and proved to be rapid, robust and highly sensitive. It compares favorably with the widespread mothur, UPARSE and QIIME.Source code and instructions for installation: https://github.com/geraldinepascal/FROGS.git. A companion website: http://frogs.toulouse.inra.fr.Supplementary data are available at Bioinformatics online.}",
+                issn = {1367-4803},
+                doi = {10.1093/bioinformatics/btx791},
+                url = {https://doi.org/10.1093/bioinformatics/btx791},
+                eprint = {https://academic.oup.com/bioinformatics/article-pdf/34/8/1287/25120140/btx791\_supplementary\_file.pdf},
+            }
+        </citation>
+        <citation type="bibtex">
+            @article{10.1093/bib/bbab318,
+                author = {Bernard, Maria and Rué, Olivier and Mariadassou, Mahendra and Pascal, Géraldine},
+                title = "{FROGS: a powerful tool to analyse the diversity of fungi with special management of internal transcribed spacers}",
+                journal = {Briefings in Bioinformatics},
+                year = {2021},
+                month = {08},
+                abstract = "{Fungi are present in all environments. They fulfil important ecological functions and play a crucial role in the food industry. Their accurate characterization is thus indispensable, particularly through metabarcoding. The most frequently used markers to monitor fungi are ITSs. These markers are the best documented in public databases but have one main weakness: polymerase chain reaction amplification may produce non-overlapping reads in a significant fraction of the fungi. When these reads are filtered out, traditional metabarcoding pipelines lose part of the information and consequently produce biased pictures of the composition and structure of the environment under study. We developed a solution that enables processing of the entire set of reads including both overlapping and non-overlapping, thus providing a more accurate picture of fungal communities. Our comparative tests using simulated and real data demonstrated the effectiveness of our solution, which can be used by both experts and non-specialists on a command line or through the Galaxy-based web interface.}",
+                issn = {1477-4054},
+                doi = {10.1093/bib/bbab318},
+                url = {https://doi.org/10.1093/bib/bbab318},
+                note = {bbab318},
+                eprint = {https://academic.oup.com/bib/advance-article-pdf/doi/10.1093/bib/bbab318/39805849/bbab318.pdf},
+            }
+        </citation>
+    </xml>
+
+
+</macros>
\ No newline at end of file
--- a/normalisation.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/normalisation.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,23 +15,27 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool id="FROGS_normalisation" name="FROGS Abundance normalisation" version="3.2.3.1">
+<tool id="FROGS_normalisation" name="FROGS Abundance normalisation" version="@TOOL_VERSION@+galaxy2">
         <description>Normalise OTUs abundance.</description>
-        <requirements>
-                <requirement type="package" version="3.2.3">frogs</requirement>
-        </requirements>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements"/>
+
         <stdio>
                 <exit_code range="1:" />
                 <exit_code range=":-1" />
         </stdio>
 	<command>
-		normalisation.py 
-		                       --input-biom $input_biom
-		                       --input-fasta $input_fasta
+		normalisation.py
+		                       --input-biom '$input_biom'
+		                       --input-fasta '$input_fasta'
 		                       --num-reads $num_reads
-		                       --output-biom $output_biom
-		                       --output-fasta $output_fasta 
-		                       --summary-file $summary_file 
+		                       --output-biom '$output_biom'
+		                       --output-fasta '$output_fasta'
+		                       --summary-file '$summary_file'
 	</command>
 	<inputs>
 		<param format="fasta" name="input_fasta" type="data" label="Sequence file" help="Sequence file to normalise (format: fasta)." />
@@ -55,10 +59,7 @@
     </tests>
 	<help>
 
-.. image:: static/images/FROGS_logo.png 
-   :height: 144
-   :width: 110
-
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -79,7 +80,7 @@
 The sequences (format `FASTA &lt;https://en.wikipedia.org/wiki/FASTA_format&gt;`_).
 
 **Abundance file**:
- 
+
 The abundance of each OTU in each sample (format `BIOM &lt;http://biom-format.org/&gt;`_).
 
 .. class:: h3
@@ -106,17 +107,12 @@
 The number specified in "Number of reads" must be smaller than each total number of sequences by sample.
 
 
-----
-
-**Contact**
-
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
 	</help>
+
+	<citations>
+		<expand macro="citations" />
+	</citations>
+	
 </tool>
--- a/otu_filters.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/otu_filters.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,13 +15,18 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool id="FROGS_OTU_filters" name="FROGS OTU Filters" version="3.2.3.1">
+<tool id="FROGS_OTU_filters" name="FROGS OTU Filters" version="@TOOL_VERSION@+galaxy2">
 	<description>Filters OTUs on several criteria.</description>
-        <requirements>
-                <requirement type="package" version="3.2.3">frogs</requirement>
-                <requirement type="package" version="2.9.0">blast</requirement>
-        </requirements>
-        <stdio> 
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements">
+        <requirement type="package" version="2.9.0">blast</requirement>
+    </expand>
+
+        <stdio>
                 <exit_code range="1:" />
                 <exit_code range=":-1" />
         </stdio>
@@ -29,13 +34,13 @@
 	<command>
 
 		otu_filters.py
-			--nb-cpus \${GALAXY_SLOTS:-1} 
-			--input-biom $input_biom  
-			--input-fasta $input_fasta
-			--output-fasta $output_fasta
-			--output-biom $output_biom
-			--excluded $output_excluded
-			--summary $output_summary
+			--nb-cpus \${GALAXY_SLOTS:-1}
+			--input-biom '$input_biom'
+			--input-fasta '$input_fasta'
+			--output-fasta '$output_fasta'
+			--output-biom '$output_biom'
+			--excluded '$output_excluded'
+			--summary '$output_summary'
 
 			#if $min_sample_presence
 				--min-sample-presence $min_sample_presence
@@ -57,7 +62,7 @@
 				--nb-biggest-otu $nb_biggest_otu
 			#end if
 
-			
+
 			#if $contaminantSource.which_contaminantSource == "history"
 				##build index on the fly
 				--contaminant '${contaminantSource.ownContaminantFile}'
@@ -71,11 +76,11 @@
 		<!-- Files -->
 		<param format="fasta" name="input_fasta" type="data" label="Sequences file" help="The sequence file to filter (format: fasta)." />
 		<param format="biom1" name="input_biom" type="data" label="Abundance file" help="The abundance file to filter (format: BIOM)." />
-		
+
 		<param name="min_sample_presence" type="integer" optional="true" label="Minimum prevalence" size="5" help="Fill the field only if you want this treatment. Keep OTU if it is present in at least this number of samples.">
 			<validator type="in_range" min="2" message="To be effective this threshold need to be higher than 1" />
 		</param>
-		
+
 		<conditional name="choice_abundance_unit">
 			<param name="abundance_unit_type" type="select" label="Minimum OTU abundancy as proportion or count. We recommend to use a proportion of 0.00005.">
 				<option value="proportion">as proportion</option>
@@ -93,8 +98,8 @@
 			</when>
 		</conditional>
 
-		<param name="nb_biggest_otu" type="integer" optional="true" label="N biggest OTUs" size="5" help="Fill the fields only if you want this treatment. Keep the N biggest OTU." /> 
-		
+		<param name="nb_biggest_otu" type="integer" optional="true" label="N biggest OTUs" size="5" help="Fill the fields only if you want this treatment. Keep the N biggest OTU." />
+
 		<conditional name="contaminantSource">
 			<param name="which_contaminantSource" type="select" label="Search for contaminant OTU." help="Either you use your own contaminant fasta file or you select one among available ones.">
 				<option value="no">No contaminant filter</option>
@@ -122,11 +127,11 @@
 	<tests>
 		<test>
 	        <param name="input_fasta" value="references/03-chimera.fasta" />
-            <param name="input_biom" value="references/03-chimera.biom" />    
+            <param name="input_biom" value="references/03-chimera.biom" />
             <param name="min_sample_presence" value="3" />
 		    <conditional name="choice_abundance_unit">
 		    	<param name="abundance_unit_type" value="proportion" />
-				<param name="min_abundance_proportion" value="0.00005" />	
+				<param name="min_abundance_proportion" value="0.00005" />
 		    </conditional>
             <conditional name="contaminantSource">
             	<param name="which_contaminantSource" value="server"/>
@@ -140,11 +145,7 @@
 	</tests>
 	<help>
 
-.. image:: static/images/FROGS_logo.png
-   :height: 144
-   :width: 110
-
-
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -153,7 +154,7 @@
 Filter the OTUs of an abundance table according to:
 
 -The abundance and the occurence of OTUs: presence in samples, OTU size and maximum number of OTUs.
- 
+
 -Contamination: from the list of proposition (ex : phiX, a control added in Illumina sequencing technologies) or from your history (ex : a fasta file containing a list of contaminant of your choice).
 
 
@@ -214,7 +215,7 @@
 
 The OTUs discarded are listed in the excluded file.
 
-.. csv-table:: 
+.. csv-table::
    :header: "Steps", "description"
    :widths: 5, 150
    :class: table table-striped
@@ -231,7 +232,7 @@
 
 Please check that the input fasta file and the input BIOM file correspond to the same OTUs.
 
-Examples for the filters on abundance and occurence of the OTUs : 
+Examples for the filters on abundance and occurence of the OTUs :
 
 -To keep the filters that are present in 5 samples, fill the corresponding field with "5".
 
@@ -240,17 +241,12 @@
 -To filter on abundance, we advise you to specify 0.005%. It seems to be the optimal threshold (`Bokulich *et al*, 2013 &lt;http://www.nature.com/nmeth/journal/v10/n1/abs/nmeth.2276.html&gt;`_ ).
 
 
-----
-
-**Contact**
-
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
 	</help>
+
+	<citations>
+		<expand macro="citations" />
+	</citations>
+
 </tool>
--- a/phyloseq_alpha_diversity.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/phyloseq_alpha_diversity.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,37 +15,35 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool name="FROGSSTAT Phyloseq Alpha Diversity" id="FROGSSTAT_Phyloseq_Alpha_Diversity" version="3.2.3.1">
+<tool id="FROGSSTAT_Phyloseq_Alpha_Diversity" name="FROGSSTAT Phyloseq Alpha Diversity" version="@TOOL_VERSION@+galaxy2">
 	<description>with richness plot</description>
-        <requirements>
-            <requirement type="package" version="3.2.">frogs</requirement>
-            <requirement type="package" version="4.0.5">r-base</requirement>
-            <requirement type="package" version="4.0">r-essentials</requirement>
-            <requirement type="package" version="1.34.0">bioconductor-phyloseq</requirement>
 
-<!--             <requirement type="package" version="1.1">r-markdown</requirement>
-            <requirement type="package" version="2.11.4">pandoc</requirement> -->
-        </requirements>
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements_phyloseq" />
+
 	<stdio>
 		<exit_code range="1:" />
 		<exit_code range=":-1" />
 	</stdio>
 	<command>phyloseq_alpha_diversity.py
-                                             --rdata $data 
-                                             --varExp $varExp
-                                             --alpha-measures $measures
-                                             --alpha-out $alphaD 
-                                             --html $html
+                                             --rdata '$data'
+                                             --varExp '$varExp'
+                                             --alpha-measures '$measures'
+                                             --alpha-out '$alphaD'
+                                             --html '$html'
 	</command>
     <inputs>
 		<!-- Files -->
 	    <param format="rdata" name="data" type="data" label="Phyloseq object (format rdata)" help="This file is the result of FROGS Phyloseq Import Data tool." optional="false">
             <validator type="empty_field" message="This parameter is required." />
         </param>
-		<!-- Parameters -->	
+		<!-- Parameters -->
 		<param name="varExp" type="text" label="Experiment variable" help="The experiment variable that you want to analyse." optional="false" value="" size="40">
             <validator type="empty_field" message="This parameter is required." />
-        </param>        
+        </param>
 	    <param name="measures" type="select" label="The alpha diversity indices to compute" multiple="true" display="checkboxes">
              <option value="Observed" selected="True">Observed</option>
              <option value="Chao1" selected="True">Chao1</option>
@@ -66,14 +64,22 @@
             <param name="varExp" value="EnvType" />
             <param name="measures" value="Observed,Chao1,Shannon" />
             <output name="alphaD" file="references/18-phylo_alpha_div.tsv" compare="diff" lines_diff="0" />
-            <output name="html" value="references/18-phylo_alpha_div.nb.html" compare="diff" lines_diff="0"/>
+            <!-- <output name="html" value="references/18-phylo_alpha_div.nb.html" compare="diff" lines_diff="0"/> -->
+            <output name="html">
+                <assert_contents>
+                    <!-- check anova on Observed alpha metrics -->
+                    <has_text text='EnvType      7  18148    2593   5.383 9.78e-05' />
+                    <!-- check anova on Chao1 alpha metrics -->
+                    <has_text text='EnvType      7  13764    1966   2.492   0.0269' />
+                    <!-- check anova on Chao1 alpha metrics -->
+                    <has_text text='EnvType      7 11.333   1.619   3.553 0.003209' />
+                </assert_contents>
+            </output>
         </test>
     </tests>
     <help>
-		
-.. image:: static/images/FROGS_logo.png 
-   :height: 144
-   :width: 110
+
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -99,14 +105,14 @@
 
 **Html file** (format `HTML &lt;https://en.wikipedia.org/wiki/HTML&gt;`_): the review of richness plots and rarefaction curves.
 
-.. image:: static/images/FROGS_Phyloseq_plot_richness.png 
+.. image:: static/images/FROGS_Phyloseq_plot_richness.png
      :height: 400
-     :width: 525 
+     :width: 525
 
 .. image:: static/images/FROGS_Phyloseq_plot_richness_box.png
      :height: 400
      :width: 499
-     
+
 .. image:: static/images/FROGS_Phyloseq_rarefaction_curves.png
      :height: 400
      :width: 498
@@ -118,15 +124,12 @@
 
 .. class:: infomark page-header h2
 
-**Contact**
-
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
 	</help>
+
+    <citations>
+        <expand macro="citations" />
+    </citations>
+    
 </tool>
--- a/phyloseq_beta_diversity.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/phyloseq_beta_diversity.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,42 +15,44 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool name="FROGSSTAT Phyloseq Beta Diversity" id="FROGSSTAT_Phyloseq_Beta_Diversity" version="3.2.3.1">
+<tool id="FROGSSTAT_Phyloseq_Beta_Diversity" name="FROGSSTAT Phyloseq Beta Diversity" version="@TOOL_VERSION@+galaxy2">
 	<description>distance matrix</description>
-        <requirements>
-            <requirement type="package" version="3.2.3">frogs</requirement>
-            <requirement type="package" version="4.0.5">r-base</requirement>
-            <requirement type="package" version="4.0">r-essentials</requirement>
-            <requirement type="package" version="1.34.0">bioconductor-phyloseq</requirement>
-            <requirement type="package" version="2.3">r-gridextra</requirement>
-        </requirements>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements_phyloseq" >
+        <requirement type="package" version="2.3">r-gridextra</requirement>
+    </expand>
+
 	<stdio>
 		<exit_code range="1:" />
 		<exit_code range=":-1" />
 	</stdio>
-	<command>phyloseq_beta_diversity.py 
-                                        --rdata $data
-                                        --varExp $varExp
+	<command>phyloseq_beta_diversity.py
+                                        --rdata '$data'
+                                        --varExp '$varExp'
                                         #if $methods != "None"
                                             #if $other_method != ""
-                                                --distance-methods $methods,$other_method
+                                                --distance-methods '$methods,$other_method'
                                             #else
-                                                --distance-methods $methods
+                                                --distance-methods '$methods'
                                             #end if
                                         #else
                                             #if $other_method != ""
-                                                --distance-methods $other_method
+                                                --distance-methods '$other_method'
                                             #end if
                                         #end if
                                         --matrix-outdir BetaMatrix
-                                        --html $html
+                                        --html '$html'
 	</command>
     <inputs>
 		<!-- Files -->
 	    <param format="rdata" name="data" type="data" label="Phyloseq object (format rdata)" help="This is the result of FROGS Phyloseq Import Data tool." optional="false">
             <validator type="empty_field" message="This parameter is required." />
         </param>
-		<!-- Parameters -->	
+		<!-- Parameters -->
         <param name="varExp" type="text" label="Grouping variable" help="Experimental variable used to group samples (Treatment, Host type, etc)." optional="false" value="" size="20">
             <validator type="empty_field" message="This parameter is required." />
         </param>
@@ -72,15 +74,18 @@
             <param name="data" value="references/16-phylo_import.Rdata" />
             <param name="varExp" value="EnvType" />
             <param name="methods" value="cc,unifrac" />
-            <output name="html" file="references/19-phylo_beta_div.nb.html" compare="diff" lines_diff="0" /> 
+            <!-- <output name="html" file="references/19-phylo_beta_div.nb.html" compare="diff" lines_diff="0" /> -->
+            <!-- sinon test le nombre de fois où il y a img src= on en attend 2 -->
+            <output name="html">
+                <discovered_dataset designation="unifrac.tsv" ftype="tabular" file="references/unifrac.tsv" compare="diff" lines_diff="0" />
+            </output>
+            
         </test>
     </tests>
 
 	<help>
-	
-.. image:: static/images/FROGS_logo.png 
-   :height: 144
-   :width: 110
+
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -114,15 +119,15 @@
 
 The review of beta diversity with heatmap plots:
 
-.. image:: static/images/FROGS_Phyloseq_beta_diversity.png 
+.. image:: static/images/FROGS_Phyloseq_beta_diversity.png
      :height: 609
-     :width: 800 
+     :width: 800
 
 
 **beta diversity matrix** (format tabular):
 The distance matrix of beta diversity.
 
- .. image:: static/images/FROGS_Phyloseq_beta_diversity_matrix.png 
+ .. image:: static/images/FROGS_Phyloseq_beta_diversity_matrix.png
 
 .. class:: infomark page-header h2
 
@@ -130,21 +135,18 @@
 
 Advices/Details
 
-Jaccard distance using 
+Jaccard distance using
 
--the "cc" method correspond to the distance computed using presence/absence data 
+-the "cc" method correspond to the distance computed using presence/absence data
 
 -the "jaccard" method correspond to the distance computed using absence data and deduced from the distance of Bray-Curtis. If you want to use this method, do not check the proposed Jaccard and write jaccard in the "Other method" parameter.
 
-**Contact**
-
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
 	</help>
+
+    <citations>
+        <expand macro="citations" />
+    </citations>
+    
 </tool>
--- a/phyloseq_clustering.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/phyloseq_clustering.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,23 +15,24 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool name="FROGSSTAT Phyloseq Sample Clustering" id="FROGSSTAT_Phyloseq_Sample_Clustering" version="3.2.3.1">
+<tool id="FROGSSTAT_Phyloseq_Sample_Clustering" name="FROGSSTAT Phyloseq Sample Clustering" version="@TOOL_VERSION@+galaxy2">
 	<description>of samples using different linkage methods</description>
-        <requirements>
-            <requirement type="package" version="3.2.3">frogs</requirement>
-            <requirement type="package" version="4.0.5">r-base</requirement>
-            <requirement type="package" version="4.0">r-essentials</requirement>
-            <requirement type="package" version="1.34.0">bioconductor-phyloseq</requirement>
-        </requirements>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements_phyloseq" />
+
 	<stdio>
 		<exit_code range="1:" />
 		<exit_code range=":-1" />
 	</stdio>
-	<command>phyloseq_clustering.py 
-                                   --html $html 
-                                   --rdata $data 
-                                   --varExp $varExp 
-                                   --distance-matrix $method
+	<command>phyloseq_clustering.py
+                                   --html '$html'
+                                   --rdata '$data'
+                                   --varExp '$varExp'
+                                   --distance-matrix '$method'
 	</command>
     <inputs>
 		<!-- Files -->
@@ -41,10 +42,10 @@
         <param name="method" format="tabular" type="data" label="The beta diversity distance matrix file" help="This file is the result of FROGS Phyloseq Beta Diversity tool." optional="false">
             <validator type="empty_field" message="This parameter is required." />
         </param>
-		<!-- Parameters -->	
+		<!-- Parameters -->
 		<param name="varExp" type="text" label="Experiment variable" help="The experiment variable that you want to analyse." optional="false" value="" size="40">
             <validator type="empty_field" message="This parameter is required." />
-        </param>	
+        </param>
 	</inputs>
 	<outputs>
 		<data format="html" name="html" label="${tool.name}: clustering.nb.html" from_work_dir="clustering.nb.html"/>
@@ -54,14 +55,22 @@
 			<param name="data" value="references/16-phylo_import.Rdata"/>
 			<param name="varExp" value="EnvType"/>
 			<param name="method" value="references/unifrac.tsv"/>
-      <output name="html" file="references/21-phylo_clustering.nb.html" compare="diff" lines_diff="0"/>
+      		<!-- <output name="html" file="references/21-phylo_clustering.nb.html" compare="diff" lines_diff="0"/> -->
+      		<output name="html">
+      			<assert_contents>
+                    <has_text text='FROGS Phyloseq: Sample clustering using different linkage method (version 3.2.3)' />
+                    <has_text text='Phyloseq 1.34.0' />
+                    <has_text text='Ward D2' />
+                    <has_text text='Complete' />
+                    <has_text text='Single' />
+                    <has_text text='img src=' />
+                </assert_contents>
+            </output>
 		</test>
 	</tests>
 	<help>
-		
-.. image:: static/images/FROGS_logo.png 
-   :height: 144
-   :width: 110
+
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -84,7 +93,7 @@
 
 **distance file** (format tabular):
 The data file containing beta diversity distance matrix.
-This file is the result of FROGS Phyloseq Beta Diversity tool. 
+This file is the result of FROGS Phyloseq Beta Diversity tool.
 
 .. class:: h3
 
@@ -94,21 +103,18 @@
 
 .. container:: row
 
- .. image:: static/images/FROGS_Phyloseq_clustering_ward.png 
+ .. image:: static/images/FROGS_Phyloseq_clustering_ward.png
    :height: 576
    :width: 768
 
 .. class:: infomark page-header h2
 
-**Contact**
-
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
 	</help>
+
+	<citations>
+		<expand macro="citations" />
+	</citations>
+	
 </tool>
--- a/phyloseq_composition.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/phyloseq_composition.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,38 +15,40 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool id="FROGSSTAT_Phyloseq_Composition_Visualisation" name="FROGSSTAT Phyloseq Composition Visualisation" version="3.2.3.1">
+<tool id="FROGSSTAT_Phyloseq_Composition_Visualisation" name="FROGSSTAT Phyloseq Composition Visualisation" version="@TOOL_VERSION@+galaxy2">
     <description>with bar plot and composition plot</description>
-    <requirements>
-        <requirement type="package" version="3.2.3">frogs</requirement>
-        <requirement type="package" version="4.0.5">r-base</requirement>
-        <requirement type="package" version="4.0">r-essentials</requirement>
-        <requirement type="package" version="1.34.0">bioconductor-phyloseq</requirement>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements_phyloseq" >
         <requirement type="package" version="4.9.3">r-plotly</requirement>
-    </requirements>
-    <stdio> 
+    </expand>
+
+    <stdio>
         <exit_code range="1:" />
         <exit_code range=":-1" />
     </stdio>
-    <command>phyloseq_composition.py 
-                          --rdata $data 
-                          --varExp $varExp 
-                          --taxaRank1 $taxaRank1 
-                          --taxaSet1 $taxaSet1 
-                          --taxaRank2 $taxaRank2 
+    <command>phyloseq_composition.py
+                          --rdata '$data'
+                          --varExp '$varExp'
+                          --taxaRank1 '$taxaRank1'
+                          --taxaSet1 '$taxaSet1'
+                          --taxaRank2 '$taxaRank2'
                           --numberOfTaxa $numberOfTaxa
-                          --html $html 
+                          --html '$html'
     </command>
     <inputs>
         <!-- Files -->
         <param format="rdata" name="data" type="data" label="Phyloseq object (format rdata)" help="This is the result of FROGS Phyloseq Import Data tool." optional="false">
             <validator type="empty_field" message="This parameter is required." />
         </param>
-        <!-- Parameters --> 
+        <!-- Parameters -->
         <param name="varExp" type="text" label="Grouping variable" help="Experimental variable used to group samples (Treatment, Host type, etc)." optional="false" value="" size="20">
             <validator type="empty_field" message="This parameter is required." />
         </param>
-        <param name="taxaRank1" type="text" label="Taxonomic level to filter your data" help="ex: Kingdom, Phylum, Class, Order, Family, Genus, Species" value="Kingdom"  size="20">     
+        <param name="taxaRank1" type="text" label="Taxonomic level to filter your data" help="ex: Kingdom, Phylum, Class, Order, Family, Genus, Species" value="Kingdom"  size="20">
             <validator type="empty_field" message="This parameter is required." />
         </param>
         <param name="taxaSet1" type="text" label="Taxa (at the above taxonomic level) to keep in the dataset" help="ex: Bacteria (when filtering at the Kingdom level), Firmicutes (when filtering at the Phylum level). Multiple taxa (separated by a space) can be specified, i.e. Firmicutes Proteobacteria" value="Bacteria" size="20">
@@ -55,7 +57,7 @@
         <param name="taxaRank2" type="text" label="Taxonomic level used for aggregation" help="ex: Family (when filtering at the Phylum level). The aggregation level must be below the filtering level." value="Phylum" size="20">
             <validator type="empty_field" message="This parameter is required." />
         </param>
-        <param name="numberOfTaxa" type="text" label="Number of most abundant taxa to keep" help="ex: 9, i.e. Tool keeps the 9 most abundant taxa and the remaining taxa are aggregated in a group 'Other'" value="9" size="20">
+        <param name="numberOfTaxa" type="integer" label="Number of most abundant taxa to keep" help="ex: 9, i.e. Tool keeps the 9 most abundant taxa and the remaining taxa are aggregated in a group 'Other'" value="9" >
             <validator type="empty_field" message="This parameter is required." />
         </param>
     </inputs>
@@ -71,7 +73,7 @@
             <param name="taxaRank2" value="Phylum" />
             <param name="numberOfTaxa" value="9" />
             <output name="html">
-                <assert_contents>   
+                <assert_contents>
                     <!-- "<br />" is replaced by ".*" -->
                     <has_text_matching expression="Phylum: Actinobacteria.*Sample: BHT0.LOT07.*Abundance: 0.3806484555" />
                     <has_text_matching expression="Phylum: Bacteroidetes.*Sample: BHT0.LOT07.*Abundance: 0.0026380734" />
@@ -86,16 +88,15 @@
             </output>
         </test>
     </tests>
-    <help> 
-.. image:: static/images/FROGS_logo.png 
-   :height: 144
-   :width: 110
+    <help>
+        
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
 What it does
 
-Using `phyloseq &lt;https://joey711.github.io/phyloseq/&gt;`_ and custom R function, this tool constructs two plots to visualise the sample composition: one at the OTU level and another one at the specified aggregation level (*e.g.* Phylum) after keeping only a subset of taxa (*e.g.* Bacteria at the level Kingdom). It helps answer the question: "What is the composition at the Phylum level within Bacteria?". By default, the plot exhibits only the abundance of the 9 most abundant taxa (as specified). In general, the representation of more than 10 taxa is hard to read on plots. 
+Using `phyloseq &lt;https://joey711.github.io/phyloseq/&gt;`_ and custom R function, this tool constructs two plots to visualise the sample composition: one at the OTU level and another one at the specified aggregation level (*e.g.* Phylum) after keeping only a subset of taxa (*e.g.* Bacteria at the level Kingdom). It helps answer the question: "What is the composition at the Phylum level within Bacteria?". By default, the plot exhibits only the abundance of the 9 most abundant taxa (as specified). In general, the representation of more than 10 taxa is hard to read on plots.
 
 
 .. class:: infomark page-header h2
@@ -118,9 +119,9 @@
 
 Bar plot of OTUs is colored with aggregated taxonomic level *i.e* "Phylum" :
 
- .. image:: static/images/FROGS_Phyloseq_bar_plot.png 
+ .. image:: static/images/FROGS_Phyloseq_bar_plot.png
      :height: 646
-     :width: 800 
+     :width: 800
 
 Composition plot: plot the most abundant sub taxonomic level among a selection of OTUs.
 
@@ -128,28 +129,25 @@
 
     - Taxonomic level name to subset: Kingdom
     - Taxon name: Bacteria
- 
+
 - Aggregation of OTUs :
 
     - Taxonomic level used to agglomerate: Phylum
- 
-- Number of the most abundant taxa to keep: 9 
+
+- Number of the most abundant taxa to keep: 9
 
- .. image:: static/images/FROGS_Phyloseq_composition_plot.png 
+ .. image:: static/images/FROGS_Phyloseq_composition_plot.png
      :height: 644
-     :width: 800 
+     :width: 800
 
 .. class:: infomark page-header h2
 
-**Contact**
-
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
     </help>
+
+    <citations>
+        <expand macro="citations" />
+    </citations>
+    
 </tool>
--- a/phyloseq_import_data.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/phyloseq_import_data.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,46 +15,47 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool name="FROGSSTAT Phyloseq Import Data" id="FROGSSTAT_Phyloseq_Import_Data" version="3.2.3.1">
+<tool id="FROGSSTAT_Phyloseq_Import_Data" name="FROGSSTAT Phyloseq Import Data" version="@TOOL_VERSION@+galaxy2">
     <description>from 3 files: biomfile, samplefile, treefile </description>
-        <requirements>
-            <requirement type="package" version="3.2.3">frogs</requirement>
-            <requirement type="package" version="4.0.5">r-base</requirement>
-            <requirement type="package" version="4.0">r-essentials</requirement>
-            <requirement type="package" version="1.34.0">bioconductor-phyloseq</requirement>
-        </requirements>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements_phyloseq" />
+
         <stdio>
             <exit_code range="1:" />
             <exit_code range=":-1" />
         </stdio>
     <command>
-                phyloseq_import_data.py   --biomfile $biomfile
-                                --samplefile $samplefile 
+                phyloseq_import_data.py   --biomfile '$biomfile'
+                                --samplefile '$samplefile'
                                 #if $treefile
-                                  --treefile $treefile 
+                                  --treefile '$treefile'
                                 #end if
                                 --ranks $ranks
                                 #if $normalisation
                                     --normalisation
                                 #end if
-                                --html $html 
-                                --rdata $data
+                                --html '$html'
+                                --rdata '$data'
     </command>
     <inputs>
         <!-- Files -->
         <param format="biom1" name="biomfile" type="data" label="Abundance biom file with taxonomical metadata" help="The file contains the  OTU informations (format: biom1)." optional="false">
             <validator type="empty_field" message="This parameter is required." />
         </param>
-        
+
         <param format="tabular" name="samplefile" type="data" label="Sample tsv file" help="The file contains the samples informations (format: tabular)." optional="false">
-            <validator type="empty_field" message="This parameter is required." />                
+            <validator type="empty_field" message="This parameter is required." />
         </param>
-        
+
         <param format="nhx" name="treefile" type="data" label="Tree file (optional)" help="The file contains the tree informations (format: Newick - nhx or nwk)." optional="true" />
-        
+
         <!-- Parameters -->
         <param name="ranks" type="text" label="Names of taxonomics levels" help="The ordered taxonomic levels stored in BIOM. Each level is separated by one space."  value="Kingdom Phylum Class Order Family Genus Species" size="80" optional="false"/>
-        <param name="normalisation" type="boolean" label="Do you want to normalise your data ?" help="To normalise data before statistical analysis (default : No)." optional="false" /> 
+        <param name="normalisation" type="boolean" label="Do you want to normalise your data ?" help="To normalise data before statistical analysis (default : No)." optional="false" />
     </inputs>
     <outputs>
         <data format="rdata" name="data" label="${tool.name}: data.Rdata" from_work_dir="data.Rdata"/>
@@ -66,14 +67,30 @@
             <param name="samplefile" value="input/sample_metadata.tsv"/>
             <param name="treefile" value="input/tree.nwk"/>
             <output name="data" value="references/16-phylo_import.Rdata" compare="sim_size" delta="10"/>
-            <output name="html" value="references/16-phylo_import.nb.html" compare="diff" lines_diff="0"/>
+            <!-- <output name="html" value="references/16-phylo_import.nb.html" compare="diff" lines_diff="0"/> -->
+            <output name="html">
+                <assert_contents>
+                    <!-- check phyloseq object summary-->
+                    <has_text text='otu_table()   OTU Table:         [ 508 taxa and 64 samples ]'/>
+                    <has_text text='sample_data() Sample Data:       [ 64 samples by 4 sample variables ]' />
+                    <has_text text='tax_table()   Taxonomy Table:    [ 508 taxa by 7 taxonomic ranks ]' />
+                    <has_text text='phy_tree()    Phylogenetic Tree: [ 508 tips and 507 internal nodes ]' />
+                    <!-- check phyloseq object rank names-->
+                    <has_text text='Rank names :  Kingdom, Phylum, Class, Order, Family, Genus, Species'/>
+                    <!-- check phyloseq object Sample variables-->
+                    <has_text text='Sample variables:  EnvType, Description, FoodType, SampleID'/>
+                    <!-- check phyloseq object Variables details-->
+                    <has_text text='EnvType :  BoeufHache, VeauHache, DesLardons, MerguezVolaille, SaumonFume, FiletSaumon, FiletCabillaud, Crevette'/>
+                    <has_text text='Description :  LOT1, LOT3, LOT4, LOT5, LOT6, LOT7, LOT8, LOT10, LOT2, LOT9'/>
+                    <has_text text='FoodType :  Meat, Seafood'/>
+                    <has_text text='SampleID :  BHT0.LOT01, BHT0.LOT03, BHT0.LOT04, BHT0.LOT05, BHT0.LOT06, BHT0.LOT07, BHT0.LOT08, BHT0.LOT10, VHT0.LOT01, VHT0.LOT02, VHT0.LOT03, VHT0.LOT04, VHT0.LOT06, VHT0.LOT07, VHT0.LOT08, VHT0.LOT10, DLT0.LOT01, DLT0.LOT03, DLT0.LOT04, DLT0.LOT05, DLT0.LOT06, DLT0.LOT07, DLT0.LOT08, DLT0.LOT10, MVT0.LOT01, MVT0.LOT03, MVT0.LOT05, MVT0.LOT06, MVT0.LOT07, MVT0.LOT08, MVT0.LOT09, MVT0.LOT10, SFT0.LOT01, SFT0.LOT02, SFT0.LOT03, SFT0.LOT04, SFT0.LOT05, SFT0.LOT06, SFT0.LOT07, SFT0.LOT08, FST0.LOT01, FST0.LOT02, FST0.LOT03, FST0.LOT05, FST0.LOT06, FST0.LOT07, FST0.LOT08, FST0.LOT10, FCT0.LOT01, FCT0.LOT02, FCT0.LOT03, FCT0.LOT05, FCT0.LOT06, FCT0.LOT07, FCT0.LOT08, FCT0.LOT10, CDT0.LOT02, CDT0.LOT04, CDT0.LOT05, CDT0.LOT06, CDT0.LOT07, CDT0.LOT08, CDT0.LOT09, CDT0.LOT10'/>
+                </assert_contents>
+            </output>
         </test>
     </tests>
     <help>
 
-.. image:: static/images/FROGS_logo.png 
-   :height: 144
-   :width: 110
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -92,11 +109,11 @@
 **OTU biom file**:
 
 The OTU biom file (format `biom1 &lt;http://biom-format.org/documentation/format_versions/biom-1.0.html&gt;`_).
-The example of biom file: 
+The example of biom file:
 
-  .. image:: static/images/FROGS_Phyloseq_biomfile.png 
+  .. image:: static/images/FROGS_Phyloseq_biomfile.png
      :height: 30
-     :width: 733 
+     :width: 733
 
 **Newick file** (tree.nwk):
 
@@ -106,33 +123,30 @@
 
 **Sample file**:
 The file contains the conditions of experiment with sample ID in the first column:
-  
-  .. image:: static/images/FROGS_Phyloseq_samplefile.png 
+
+  .. image:: static/images/FROGS_Phyloseq_samplefile.png
      :height: 115
      :width: 369
-      
+
 .. class:: h3
 
 Output
 
 **Html file** (format `HTML &lt;https://en.wikipedia.org/wiki/HTML&gt;`_): The summary of phyloseq object.
-  
-  .. image:: static/images/FROGS_Phyloseq_import_data_html.png 
- 
+
+  .. image:: static/images/FROGS_Phyloseq_import_data_html.png
+
 **Data file** (format rdata): The informations of data in one phyloseq object.
 
 
 .. class:: infomark page-header h2
 
-**Contact**
-
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
     </help>
+
+    <citations>
+        <expand macro="citations" />
+    </citations>
+    
 </tool>
--- a/phyloseq_manova.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/phyloseq_manova.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,23 +15,24 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool name="FROGSSTAT Phyloseq Multivariate Analysis Of Variance" id="FROGSSTAT_Phyloseq_Multivariate_Analysis_Of_Variance" version="3.2.3.1">
+<tool id="FROGSSTAT_Phyloseq_Multivariate_Analysis_Of_Variance" name="FROGSSTAT Phyloseq Multivariate Analysis Of Variance" version="@TOOL_VERSION@+galaxy2">
         <description>perform Multivariate Analysis of Variance (MANOVA)</description>
-        <requirements>
-            <requirement type="package" version="3.2.3">frogs</requirement>
-            <requirement type="package" version="4.0.5">r-base</requirement>
-            <requirement type="package" version="4.0">r-essentials</requirement>
-            <requirement type="package" version="1.34.0">bioconductor-phyloseq</requirement>
-        </requirements>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements_phyloseq" />
+
 	<stdio>
 		<exit_code range="1:" />
 		<exit_code range=":-1" />
 	</stdio>
-	<command>phyloseq_manova.py 
-                                    --rdata $data
-                                    --varExp "$varExp"
-                                    --distance-matrix $method
-                                    --html $html
+	<command>phyloseq_manova.py
+                                    --rdata '$data'
+                                    --varExp '$varExp'
+                                    --distance-matrix '$method'
+                                    --html '$html'
 	</command>
     <inputs>
 		<!-- Files -->
@@ -41,10 +42,10 @@
         <param name="method" format="tabular" type="data" label="The beta diversity distance matrix file" help="This file is the result of FROGS Phyloseq Beta Diversity tool." optional="false">
             <validator type="empty_field" message="This parameter is required." />
         </param>
-		<!-- Parameters -->	
+		<!-- Parameters -->
 		<param name="varExp" type="text" label="Experiment variable" help="The experiment variable that you want to analyse." optional="false" value="" size="40">
             <validator type="empty_field" message="This parameter is required." />
-        </param>	
+        </param>
     </inputs>
 	<outputs>
 		<data format="html" name="html" label="${tool.name}: manova.nb.html" from_work_dir="manova.nb.html"/>
@@ -58,10 +59,8 @@
 		</test>
 	</tests>
 	<help>
-		
-.. image:: static/images/FROGS_logo.png 
-   :height: 144
-   :width: 110
+
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -83,7 +82,7 @@
 
 **distance file** (format tabular):
 The data file containing beta diversity distance matrix.
-This file is the result of FROGS Phyloseq Beta Diversity tool. 
+This file is the result of FROGS Phyloseq Beta Diversity tool.
 
 .. class:: h3
 
@@ -91,19 +90,16 @@
 
 **html file** (format `HTML &lt;https://en.wikipedia.org/wiki/HTML&gt;`_): The review of Manova test.
 
-.. image:: static/images/FROGS_Phyloseq_manova.png 
-     
+.. image:: static/images/FROGS_Phyloseq_manova.png
+
 .. class:: infomark page-header h2
 
-**Contact**
-
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
 	</help>
+
+	<citations>
+		<expand macro="citations" />
+	</citations>
+	
 </tool>
--- a/phyloseq_structure.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/phyloseq_structure.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,25 +15,27 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool name="FROGSSTAT Phyloseq Structure Visualisation" id="FROGSSTAT_Phyloseq_Structure_Visualisation" version="3.2.3.1">
+<tool id="FROGSSTAT_Phyloseq_Structure_Visualisation" name="FROGSSTAT Phyloseq Structure Visualisation" version="@TOOL_VERSION@+galaxy2">
 	<description>with heatmap plot and ordination plot</description>
-    <requirements>
-        <requirement type="package" version="3.2.3">frogs</requirement>
-        <requirement type="package" version="4.0.5">r-base</requirement>
-        <requirement type="package" version="4.0">r-essentials</requirement>
-        <requirement type="package" version="1.34.0">bioconductor-phyloseq</requirement>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements_phyloseq" >
         <requirement type="package" version="4.9.3">r-plotly</requirement>
-    </requirements>
+    </expand>
+
 	<stdio>
 		<exit_code range="1:" />
 		<exit_code range=":-1" />
 	</stdio>
-	<command>phyloseq_structure.py 
-                                         --html $html
-                                         --rdata $data
-                                         --varExp $varExp
-                                         --ordination-method $method
-                                         --distance-matrix $distance
+	<command>phyloseq_structure.py
+                                         --html '$html'
+                                         --rdata '$data'
+                                         --varExp '$varExp'
+                                         --ordination-method '$method'
+                                         --distance-matrix '$distance'
 	</command>
     <inputs>
 		<!-- Files -->
@@ -43,7 +45,7 @@
         <param name="distance" format="tabular" type="data" label="The beta diversity distance matrix file" help="These file is the result of FROGS Phyloseq Beta Diversity tool." optional="false">
             <validator type="empty_field" message="This parameter is required." />
         </param>
-		<!-- Parameters -->	
+		<!-- Parameters -->
 		<param name="varExp" type="text" label="Experiment variable" help="The experiment variable that you want to analyse." optional="false" value="" size="40">
             <validator type="empty_field" message="This parameter is required." />
         </param>
@@ -72,10 +74,8 @@
         </test>
     </tests>
 	<help>
-		
-.. image:: static/images/FROGS_logo.png
-   :height: 144
-   :width: 110
+
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -107,7 +107,7 @@
 
 The review of data structure with an ordination plot and with an heatmap plot:
 
-.. image:: static/images/FROGS_Phyloseq_plot_sample_ellipse.png 
+.. image:: static/images/FROGS_Phyloseq_plot_sample_ellipse.png
      :height: 343
      :width: 450
 
@@ -117,21 +117,18 @@
 These percentages will be computed for MDS/PCoA and DPCoA ordination methods as a percentage of explained beta diversity variation.
 For NMDS there is not simple equivalent notion.
 
-.. image:: static/images/FROGS_Phyloseq_plot_heatmap_red.png 
+.. image:: static/images/FROGS_Phyloseq_plot_heatmap_red.png
      :height: 343
      :width: 450
 
 .. class:: infomark page-header h2
 
-**Contact**
-
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
 	</help>
+
+    <citations>
+        <expand macro="citations" />
+    </citations>
+    
 </tool>
--- a/preprocess.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/preprocess.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,42 +15,47 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool id="FROGS_preprocess" name="FROGS Pre-process" version="3.2.3.1">
+<tool id="FROGS_preprocess" name="FROGS Pre-process" version="@TOOL_VERSION@+galaxy2">
 	<description>merging, denoising and dereplication.</description>
-        <requirements>
-                <requirement type="package" version="3.2.3">frogs</requirement>
-                <requirement type="package" version="2.17.0">vsearch</requirement>
-                <requirement type="package" version="1.2.11">flash</requirement>
-                <requirement type="package" version="2.10">cutadapt</requirement>
-        </requirements>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements" >
+        <requirement type="package" version="2.17.0">vsearch</requirement>
+        <requirement type="package" version="1.2.11">flash</requirement>
+        <requirement type="package" version="2.10">cutadapt</requirement>
+    </expand>
+
         <stdio>
                 <exit_code range="1:" />
                 <exit_code range=":-1" />
         </stdio>
 	<command>
-		preprocess.py $sequencer_type.sequencer_selected
-		--output-dereplicated $dereplicated_file --output-count $count_file --summary $summary_file 
+		preprocess.py '$sequencer_type.sequencer_selected'
+		--output-dereplicated '$dereplicated_file' --output-count '$count_file' --summary '$summary_file'
 		--nb-cpus \${GALAXY_SLOTS:-1}
-		--min-amplicon-size $sequencer_type.min_amplicon_size --max-amplicon-size $sequencer_type.max_amplicon_size 
-		
+		--min-amplicon-size $sequencer_type.min_amplicon_size --max-amplicon-size $sequencer_type.max_amplicon_size
+
 		#if $sequencer_type.sequencer_selected == "illumina"
 		    #if $sequencer_type.sequencing_protocol.sequencing_protocol_selected == "standard"
-		        --five-prim-primer $sequencer_type.sequencing_protocol.five_prim_primer --three-prim-primer $sequencer_type.sequencing_protocol.three_prim_primer  
+		        --five-prim-primer '$sequencer_type.sequencing_protocol.five_prim_primer' --three-prim-primer '$sequencer_type.sequencing_protocol.three_prim_primer'
 		    #else
 		        --without-primers
 		    #end if
 		#else
-		    --five-prim-primer $sequencer_type.five_prim_primer --three-prim-primer $sequencer_type.three_prim_primer 
+		    --five-prim-primer '$sequencer_type.five_prim_primer' --three-prim-primer '$sequencer_type.three_prim_primer'
 		#end if
-		
-		#if $sequencer_type.input_type.input_type_selected == "archive" 
-		    --input-archive $sequencer_type.input_type.archive_file
+
+		#if $sequencer_type.input_type.input_type_selected == "archive"
+		    --input-archive '$sequencer_type.input_type.archive_file'
 		    #if $sequencer_type.sequencer_selected == "illumina" and $sequencer_type.input_type.archive_type.archive_type_selected == "already_merged"
 			    --already-contiged
 		    #elif $sequencer_type.sequencer_selected == "illumina"
-	            --R1-size $sequencer_type.input_type.archive_type.R1_size --R2-size $sequencer_type.input_type.archive_type.R2_size 
+	            --R1-size $sequencer_type.input_type.archive_type.R1_size --R2-size $sequencer_type.input_type.archive_type.R2_size
 	        	--mismatch-rate $sequencer_type.input_type.archive_type.mm_rate
-	        	--merge-software $sequencer_type.input_type.archive_type.merge_software_type.merge_software_selected
+	        	--merge-software '$sequencer_type.input_type.archive_type.merge_software_type.merge_software_selected'
 	        	#if $sequencer_type.input_type.archive_type.merge_software_type.merge_software_selected == "flash"
 					--expected-amplicon-size $sequencer_type.input_type.archive_type.merge_software_type.expected_amplicon_size
 			#end if
@@ -61,22 +66,22 @@
 		#else
 		    #set $sep = ' '
 		    #if $sequencer_type.sequencer_selected == "illumina"
-	            --samples-names  
-	            #for $current in $sequencer_type.input_type.files_by_samples_type.samples 
+	            --samples-names
+	            #for $current in $sequencer_type.input_type.files_by_samples_type.samples
 	                $sep'${current.name.strip()}'
 	            #end for
-		        --input-R1 
-		        #for $current in $sequencer_type.input_type.files_by_samples_type.samples 
-		            $sep${current.R1_file}
+		        --input-R1
+		        #for $current in $sequencer_type.input_type.files_by_samples_type.samples
+		            $sep'${current.R1_file}'
 		        #end for
 		        #if $sequencer_type.input_type.files_by_samples_type.files_by_samples_type_selected == "already_merged"
 		            --already-contiged
 		        #else
 		            --input-R2
-		            #for $current in $sequencer_type.input_type.files_by_samples_type.samples 
-		                $sep${current.R2_file}
+		            #for $current in $sequencer_type.input_type.files_by_samples_type.samples
+		                $sep'${current.R2_file}'
 		            #end for
-		            --R1-size $sequencer_type.input_type.files_by_samples_type.R1_size --R2-size $sequencer_type.input_type.files_by_samples_type.R2_size 
+		            --R1-size $sequencer_type.input_type.files_by_samples_type.R1_size --R2-size $sequencer_type.input_type.files_by_samples_type.R2_size
 		            --mismatch-rate $sequencer_type.input_type.files_by_samples_type.mm_rate
 		            --merge-software $sequencer_type.input_type.files_by_samples_type.merge_software_type.merge_software_selected
 		            #if $sequencer_type.input_type.files_by_samples_type.merge_software_type.merge_software_selected == "flash"
@@ -87,12 +92,12 @@
 	        	    #end if
 		        #end if
 		    #else
-		        --input-R1 
-		        #for $current in $sequencer_type.input_type.samples 
-		            $sep${current.R1_file}
+		        --input-R1
+		        #for $current in $sequencer_type.input_type.samples
+		            $sep'${current.R1_file}'
 		        #end for
-		        --samples-names  
-		        #for $current in $sequencer_type.input_type.samples 
+		        --samples-names
+		        #for $current in $sequencer_type.input_type.samples
 		            $sep'${current.name.strip()}'
 		        #end for
 		    #end if
@@ -123,7 +128,7 @@
 								<!-- Reads size -->
 								<param name="R1_size" type="integer" label="Reads 1 size" help="The maximum read1 size." value="" optional="false" />
 								<param name="R2_size" type="integer" label="Reads 2 size" help="The maximum read2 size." value="" optional="false" />
-								<param name="mm_rate" type="float" label="Mismatch rate." help="The maximum rate of mismatch in the overlap region" value="0.1" optional="false" />					
+								<param name="mm_rate" type="float" label="Mismatch rate." help="The maximum rate of mismatch in the overlap region" value="0.1" optional="false" />
 								<conditional name="merge_software_type">
 									<param name="merge_software_selected" type="select" label="Merge software" help="Select the software to merge paired-end reads.">
 										<option value="vsearch" selected="true">Vsearch</option>
@@ -201,7 +206,7 @@
 					<when value="without_primers"></when>
 				</conditional>
 			</when>
-			
+
 			<when value="454">
 				<!-- Samples -->
 				<conditional name="input_type">
@@ -296,14 +301,11 @@
 			<output name="dereplicated_file" file="references/01-prepro-vsearch.fasta" compare="diff" lines_diff="0" />
 			<output name="count_file" file="references/01-prepro-vsearch.tsv" compare="diff" lines_diff="0" />
 			<output name="summary_file" file="references/01-prepro-vsearch.html" compare="sim_size" delta="0"/>
-        </test>            
+        </test>
     </tests>
 	<help>
 
-.. image:: static/images/FROGS_logo.png 
-   :height: 144
-   :width: 110
-
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -361,14 +363,14 @@
 **Summary file** (report.html):
 
  This file reports the number of remaining sequences after each filter (format `HTML &lt;https://en.wikipedia.org/wiki/HTML&gt;`_). Depending of the tool configuration there will be more or less filtering steps so more or less bars in the barplot.
- 
- .. image:: static/images/FROGS_preprocess_summary_v3.png 
+
+ .. image:: static/images/FROGS_preprocess_summary_v3.png
      :height: 850
-     :width: 831 
+     :width: 831
 
  It also presents the length distribution of the full amplicon sequences after merging step and after filtering steps.
- 
- .. image:: static/images/FROGS_preprocess_lengthsSamples_v3.png 
+
+ .. image:: static/images/FROGS_preprocess_lengthsSamples_v3.png
      :height: 379
      :width: 364
 
@@ -376,14 +378,14 @@
 
 How it works
 
-.. csv-table:: 
+.. csv-table::
    :header: "Steps", "Illumina", "454"
    :widths: 5, 150, 150
    :class: table table-striped
 
-   "1", "For un-merged data: Merges R1 and R2 with a maximum of M% mismatch in the overlaped region(`VSEARCH &lt;https://github.com/torognes/vsearch/&gt;`_ or `FLASH &lt;https://ccb.jhu.edu/software/FLASH/&gt;`_ or optionnaly `PEAR &lt;https://sco.h-its.org/exelixis/web/software/pear/&gt;`_) with a minimum of 10 bp in the overlap region. Resulting un-merged reads may optionnaly be artificially combined by adding 100 N between the reads", "/"
+   "1", "For un-merged data: Merges R1 and R2 with a maximum of M% mismatch in the overlaped region(`VSEARCH &lt;https://github.com/torognes/vsearch/&gt;`_ or `FLASH &lt;http://ccb.jhu.edu/software/FLASH/&gt;`_ or optionnaly `PEAR &lt;https://sco.h-its.org/exelixis/web/software/pear/&gt;`_) with a minimum of 10 bp in the overlap region. Resulting un-merged reads may optionnaly be artificially combined by adding 100 N between the reads", "/"
    "2", "If sequencing protocol is the illumina standard protocol : Removes sequences where the two primers are not present and removes primers in the remaining sequence (`cutadapt &lt;http://cutadapt.readthedocs.org/en/latest/guide.html&gt;`_). The primer search accepts 10% of differences", "Removes sequences where the two primers are not present, removes primers sequence from amplicon sequence and reverse complement the sequences on strand -  (`cutadapt &lt;http://cutadapt.readthedocs.org/en/latest/guide.html&gt;`_). The primer search accepts 10% of differences"
-   "3", "Filters sequences with ambiguous nucleotides and for merged sequences filters on their length which must be range between 'Minimum amplicon size - primer length' and 'Maximum amplicon size - primer length'", "Removes sequences with at least one homopolymer with more than seven nucleotides and with a distance of less than or equal to 10 nucleo-tides between two poor quality positions, i.e. with a Phred quality score lesser than 10" 
+   "3", "Filters sequences with ambiguous nucleotides and for merged sequences filters on their length which must be range between 'Minimum amplicon size - primer length' and 'Maximum amplicon size - primer length'", "Removes sequences with at least one homopolymer with more than seven nucleotides and with a distance of less than or equal to 10 nucleo-tides between two poor quality positions, i.e. with a Phred quality score lesser than 10"
    "4", "Dereplicates sequences", "Dereplicates sequences"
 
 
@@ -435,16 +437,16 @@
 
 The (`Kozich et al. 2013 &lt;http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3753973/&gt;`_ ) protocol uses custom sequencing primers which are also the PCR primers. In this case the reads do not contain the PCR primers.
 
-In case of Illumina standard protocol, the primers must be provided in 5' to 3' orientation. 
+In case of Illumina standard protocol, the primers must be provided in 5' to 3' orientation.
 
 .. role:: alert-info
 
 Example:
 
  5' :alert-info:`ATGCCC` GTCGTCGTAAAATGC :alert-info:`ATTTCAG` 3'
- 
+
  Value for parameter 5' primer: ATGCCC
- 
+
  Value for parameter 3' primer: ATTTCAG
 
 .. class:: h3
@@ -460,7 +462,7 @@
  .. image:: static/images/FROGS_preprocess_ampliconSize_unimodal_v3.png
     :height: 415
     :width: 676
- 
+
  .. image:: static/images/FROGS_preprocess_ampliconSize_multimodal_v3.png
     :height: 415
     :width: 676
@@ -472,20 +474,16 @@
 If the filter 'merged' reduce drasticaly the number of sequences:
 
  In un-merged Illumina data, and targeted amplicon size in the range of R1+R2-10, the reduction of dataset by the merged filter is classicaly inferior than 20%. A loss of more than 20% in all samples can highlight a quality problem.
- 
+
  If the overlap between R1 and R2 is superior to 50 nucleotides and the quality of the end of the sequences is poor (see `FastQC &lt;http://www.bioinformatics.babraham.ac.uk/projects/fastqc/&gt;`_) you can try to cut the end of your sequences and relaunch the preprocess tool. You can either raise the mismatch percent in the overlapped region, but not too much!
 
-----
 
-**Contact**
-
-Contacts: frogs-support@inrae.fr
-
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
+@HELP_CONTACT@
 
 	</help>
+
+	<citations>
+		<expand macro="citations" />
+	</citations>
+
 </tool>
--- a/remove_chimera.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/remove_chimera.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,27 +15,32 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool id="FROGS_remove_chimera" name="FROGS Remove chimera" version="3.2.3.1">
+<tool id="FROGS_remove_chimera" name="FROGS Remove chimera" version="@TOOL_VERSION@+galaxy2">
 	<description>Remove PCR chimera in each sample.</description>
-        <requirements>
-            <requirement type="package" version="3.2.3">frogs</requirement>
-            <requirement type="package" version="2.15.1">vsearch</requirement>
-        </requirements>
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+        <expand macro="requirements" >
+        	<requirement type="package" version="2.17.0">vsearch</requirement>
+        </expand>
+
         <stdio>
                 <exit_code range="1:" />
                 <exit_code range=":-1" />
         </stdio>
 	<command>
-		remove_chimera.py 
+		remove_chimera.py
 		                --nb-cpus \${GALAXY_SLOTS:-1}
-		                --input-fasta $sequence_file --non-chimera $non_chimera_fasta
-		                --summary $summary_file
+		                --input-fasta '$sequence_file' --non-chimera '$non_chimera_fasta'
+		                --summary '$summary_file'
 		                #if $abundance_type.abundance_type_selected == "biom"
-		                --input-biom $abundance_biom
-		                --out-abundance $out_abundance_biom
+		                --input-biom '$abundance_biom'
+		                --out-abundance '$out_abundance_biom'
 		                #else
-		                --input-count $abundance_count
-		                --out-abundance $out_abundance_count
+		                --input-count '$abundance_count'
+		                --out-abundance '$out_abundance_count'
 		                #end if
 	</command>
 	<inputs>
@@ -74,14 +79,11 @@
 			<output name="non_chimera_fasta" file="references/03-chimera.fasta" compare="diff" lines_diff="0"/>
 			<output name="summary_file" file="references/03-chimera.html" compare="diff" lines_diff="0"/>
 			<output name="out_abundance_biom" file="references/03-chimera.biom" compare="sim_size" delta="0"/>
-		</test>	
+		</test>
 	</tests>
 	<help>
 
-.. image:: static/images/FROGS_logo.png 
-   :height: 144
-   :width: 110
-
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -97,7 +99,7 @@
 Chimeras are sequences formed from two or more biological sequences joined together.
 
 The majority of these anomalous sequences are formed from an incomplete extension during a PCR cycle. During subsequent cycles, a partially extended strand can bind to a template derived from a different but similar sequence.
- 
+
 This phenomena is particularly common in amplicon sequencing where closely related sequences are amplified.
 
 
@@ -114,22 +116,22 @@
 The sequences (format `FASTA &lt;https://en.wikipedia.org/wiki/FASTA_format&gt;`_).
 
 **Abundance file**:
- 
+
  The abundance of each cluster in each sample (format `BIOM &lt;http://biom-format.org/&gt;`_).
 
 OR
 
  The abundance of each sequence in each sample (format `TSV &lt;https://en.wikipedia.org/wiki/Tab-separated_values&gt;`_). This type of file is produced by *FROGS pre-process*.
- 
+
  Example:
 
-.. csv-table:: 
+.. csv-table::
    :header: "#id", "splA","splB"
    :widths: 10,10,10
    :class: table table-striped
 
     "seq1", "1289", "2901"
-    "seq2", "3415", "0"			
+    "seq2", "3415", "0"
 
 .. class:: h3
 
@@ -152,7 +154,7 @@
 
 How it works
 
-.. csv-table:: 
+.. csv-table::
    :header: "Steps", "Description"
    :widths: 10, 90
    :class: table table-striped
@@ -162,17 +164,13 @@
    "3", "Remove the sequences identify as chimera in all samples where they are present."
 
 
-----
-
-**Contact**
-
-Contacts: frogs-support@inrae.fr
+@HELP_CONTACT@
 
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
-
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
 
 	</help>
+
+	<citations>
+		<expand macro="citations" />
+	</citations>
+	
 </tool>
Binary file static/images/FROGS_db.png has changed
--- a/tree.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/tree.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,27 +15,31 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool id="FROGS_Tree" name="FROGS Tree" version="3.2.3.1">
+<tool id="FROGS_Tree" name="FROGS Tree" version="@TOOL_VERSION@+galaxy2">
     <description>Reconstruction of phylogenetic tree </description>
-    <requirements>
-        <requirement type="package" version="3.2.3">frogs</requirement>
-        <requirement type="package" version="7.407">mafft</requirement>
-        <requirement type="package" version="2.1.09">fasttree</requirement>
-        <requirement type="package" version="4.0.5">r-base</requirement>
-         <requirement type="package" version="4.0">r-essentials</requirement>
-        <requirement type="package" version="2.7.0">r-phangorn</requirement>
-    </requirements>
+
+      <macros>
+          <import>macros.xml</import>
+      </macros>
+
+      <expand macro="requirements" >
+          <requirement type="package" version="7.407">mafft</requirement>
+          <requirement type="package" version="2.1.9">fasttree</requirement>
+          <requirement type="package" version="4.0">r-essentials</requirement>
+          <requirement type="package" version="2.7.0">r-phangorn</requirement>
+      </expand>
+
     <stdio>
         <exit_code range="1:" />
         <exit_code range=":-1" />
     </stdio>
     <command>
-        tree.py 
-            --input-sequences $input_otu
-            --biom-file $biomfile
+        tree.py
+            --input-sequences '$input_otu'
+            --biom-file '$biomfile'
             --nb-cpus \${GALAXY_SLOTS:-1}
-            --out-tree $out_tree
-            --html $html
+            --out-tree '$out_tree'
+            --html '$html'
     </command>
     <inputs>
     <!-- Files -->
@@ -69,9 +73,7 @@
         </test>
     </tests>
     <help>
-.. image:: static/images/FROGS_logo.png 
-   :height: 144
-   :width: 110
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -92,9 +94,9 @@
 
 The OTUs sequence file (format `FASTA &lt;https://en.wikipedia.org/wiki/FASTA_format&gt;`_).
 Careful: FROGS Tree works only with less than 10 000 sequences!
- 
+
  .. image:: static/images/FROGS_tree_otufile.png
-     
+
 **OTUs biom file**:
 
 The OTUs biom file (format `biom1 &lt;http://biom-format.org/documentation/format_versions/biom-1.0.html&gt;`_).
@@ -111,20 +113,19 @@
  .. image:: static/images/FROGS_nwk_treefile.png
 
 **Html file** (summary.html):
-   
+
 The summary file describing which OTUs are contained or not in the phylogenetic tree.
 
 .. class:: infomark page-header h2
-   
-**Contact**
-
-Contacts: frogs-support@inrae.fr
 
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
+@HELP_CONTACT@
 
-Website: http://frogs.toulouse.inrae.fr/
 
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
 
     </help>
+
+    <citations>
+        <expand macro="citations" />
+    </citations>
+    
 </tool>
--- a/tsv_to_biom.xml	Mon Jun 21 14:28:06 2021 +0000
+++ b/tsv_to_biom.xml	Tue Aug 24 08:21:23 2021 +0000
@@ -15,24 +15,28 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<tool id="FROGS_tsv_to_biom" name="FROGS TSV_to_BIOM" version="3.2.3.1">
+<tool id="FROGS_tsv_to_biom" name="FROGS TSV_to_BIOM" version="@TOOL_VERSION@+galaxy2">
 	<description>Converts a TSV file in a BIOM file.</description>
-        <requirements>
-            <requirement type="package" version="3.2.3">frogs</requirement>
-        </requirements>
-        <stdio> 
+
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <expand macro="requirements"/>
+
+        <stdio>
             <exit_code range="1:" />
             <exit_code range=":-1" />
         </stdio>
 	<command>
-		tsv_to_biom.py 
-		                --input-tsv $tsv_file
-		                --output-biom $biom_file
+		tsv_to_biom.py
+		                --input-tsv '$tsv_file'
+		                --output-biom '$biom_file'
 		              #if $multi_affi_file
-		                --input-multi-affi $multi_affi_file
+		                --input-multi-affi '$multi_affi_file'
 		              #end if
 		              #if $extract_fasta
-		                --output-fasta $sequence_file
+		                --output-fasta '$sequence_file'
 		              #end if
 	</command>
 	<inputs>
@@ -58,10 +62,7 @@
 		</test>
 	</tests>
 	<help>
-.. image:: static/images/FROGS_logo.png
-   :height: 144
-   :width: 110
-
+@HELP_LOGO@
 
 .. class:: infomark page-header h2
 
@@ -74,7 +75,7 @@
 Inputs
 
 **Abundance file**:
- 
+
 The table with abundances each cluster in each sample and other details conerning the cluster (format TSV).
 
 Authorised column names :  rdp_tax_and_bootstrap, blast_taxonomy, blast_subject, blast_perc_identity, blast_perc_query_coverage, blast_evalue, blast_aln_length, seed_id, seed_sequence, observation_name, observation_sum
@@ -120,20 +121,18 @@
     * -do not modify column names
     * -do not remove columns
     * -take care to choose a taxonomy available in your multi_hit TSV file
-    * -if you delete lines of the multi_hit file, take care to not remove a complete cluster whithout removing all "multi tags" in you abundance TSV file. 
+    * -if you delete lines of the multi_hit file, take care to not remove a complete cluster whithout removing all "multi tags" in you abundance TSV file.
     * -if you want to rename a taxon level (ex : genus "Ruminiclostridium 5;" to genus "Ruminiclostridium;"), do not forget to modify also your multi_hit TSV file.
 
-----
 
-**Contact**
-
-Contacts: frogs-support@inrae.fr
 
-Repositories: https://github.com/geraldinepascal/FROGS, https://github.com/geraldinepascal/FROGS-wrappers
+@HELP_CONTACT@
 
-Website: http://frogs.toulouse.inrae.fr/
-
-Please cite the **FROGS article**: `Escudie F., et al. Bioinformatics, 2018. FROGS: Find, Rapidly, OTUs with Galaxy Solution. &lt;https://doi.org/10.1093/bioinformatics/btx791&gt;`_
 
 	</help>
+
+	<citations>
+		<expand macro="citations" />
+	</citations>
+
 </tool>