view recetox_aplcms_hybrid.xml @ 6:d654c5fdbaca draft

"planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/recetox_aplcms commit 636146595a7067d7062961dbfa834f366c342156"
author recetox
date Sun, 20 Jun 2021 09:15:06 +0000
parents 3a8864093eac
children d1b2fafa8b79
line wrap: on
line source

<tool id="recetox_aplcms_hybrid" name="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>

    <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="1000" />
        </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>