view recetox_aplcms_hybrid.xml @ 8:f22b38b72ac8 draft

"planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/recetox_aplcms commit 7b649938402c30227d8252d63e89a72f2f6fb628"
author recetox
date Thu, 19 Aug 2021 14:02:56 +0000
parents d1b2fafa8b79
children d62f052efae6
line wrap: on
line source

<tool id="recetox_aplcms_hybrid" name="RECETOX apLCMS Hybrid" version="@TOOL_VERSION@+galaxy1">
    <description>generate a feature table from LC/MS spectra</description>
    <macros>
        <import>recetox_aplcms_macros.xml</import>
    </macros>
    <expand macro="requirements" />
    <command detect_errors="aggressive"><![CDATA[
        sh ${symlink_inputs} &&
        Rscript  -e 'source("${__tool_directory__}/main.R")' -e 'source("${run_script}")'
    ]]></command>
    <expand macro="creator" />
    <configfiles>
        <configfile name="symlink_inputs">
            #for $infile in $files
                ln -s '${infile}' '${infile.element_identifier}'
            #end for
        </configfile>
        <configfile name="run_script"><![CDATA[
            #set filenames_str = str("', '").join([str($f.element_identifier) for $f in $files])

            hybrid_main(
                sample_files = c('$filenames_str'),
                known_table_file = '${known_table}',
                updated_known_table_file = '${updated_known_table}',
                pairing_file = '${feature_known_table_pairing}',
                aligned_file = '${aligned_feature_sample_table}',
                recovered_file = '${recovered_feature_sample_table}',
                min_exp = $noise_filtering.min_exp,
                min_pres = $noise_filtering.min_pres,
                min_run = $noise_filtering.min_run,
                mz_tol = $noise_filtering.mz_tol,
                baseline_correct = $noise_filtering.baseline_correct,
                baseline_correct_noise_percentile = $noise_filtering.baseline_correct_noise_percentile,
                intensity_weighted = $noise_filtering.intensity_weighted,
                shape_model = '$feature_detection.shape_model',
                BIC_factor = $feature_detection.BIC_factor,
                peak_estim_method = '$feature_detection.peak_estim_method',
                min_bandwidth = $feature_detection.min_bandwidth,
                max_bandwidth = $feature_detection.max_bandwidth,
                sd_cut = c($feature_detection.sd_cut_min, $feature_detection.sd_cut_max),
                sigma_ratio_lim = c($feature_detection.sigma_ratio_lim_min, $feature_detection.sigma_ratio_lim_max),
                component_eliminate = $feature_detection.component_eliminate,
                moment_power = $feature_detection.moment_power,
                align_chr_tol = $peak_alignment.align_chr_tol,
                align_mz_tol = $peak_alignment.align_mz_tol,
                max_align_mz_diff = $peak_alignment.max_align_mz_diff,
                match_tol_ppm = $history_db.match_tol_ppm,
                new_feature_min_count = $history_db.new_feature_min_count,
                recover_mz_range = $weak_signal_recovery.recover_mz_range,
                recover_chr_range = $weak_signal_recovery.recover_chr_range,
                use_observed_range = $weak_signal_recovery.use_observed_range,
                recover_min_count = $weak_signal_recovery.recover_min_count,
                cluster = as.integer(Sys.getenv('GALAXY_SLOTS', unset = 1))
            )
        ]]></configfile>
    </configfiles>

    <expand macro="inputs">
        <expand macro="history_db" />
        <expand macro="noise_filtering" />
        <expand macro="feature_detection" />
        <expand macro="peak_alignment" />
        <expand macro="weak_signal_recovery" />
    </expand>

    <outputs>
        <expand macro="unsupervised_outputs" />
        <data name="updated_known_table" format="parquet" label="${tool.name} updated_known_table on ${on_string}" />
        <data name="feature_known_table_pairing" format="tabular" label="${tool.name} feature_known_table_pairing on ${on_string}" hidden="true" />
    </outputs>

    <tests>
        <test>
            <param name="known_table" value="known_table.parquet" ftype="parquet" />
            <param name="files" value="mbr_test0.mzml,mbr_test1.mzml,mbr_test2.mzml" ftype="mzml" />
            <output name="recovered_feature_sample_table" file="hybrid_recovered_feature_sample_table.parquet" ftype="parquet" compare="sim_size" delta="500" />
        </test>
    </tests>

    <help>
        This is the Hybrid version of apLCMS which is incorporating the knowledge of known metabolites and historically
        detected features on the same machinery to help detect and quantify lower-intensity peaks.

        CAUTION: To use such knowledge, especially historical data, you must keep using (1) the same chromatography
        system (otherwise the retention time will not match), and (2) the same type of samples with similar extraction
        technique, such as human serum.

        @GENERAL_HELP@
    </help>

    <expand macro="citations" />
</tool>