Mercurial > repos > iuc > hgvsparser
diff hgvsparser.xml @ 0:c12a4d187121 draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hgvsparser/ commit f9deb29cdbd2d2a5f2f4fbd470b1078431a36ae0
| author | iuc |
|---|---|
| date | Fri, 07 Jun 2024 15:21:07 +0000 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hgvsparser.xml Fri Jun 07 15:21:07 2024 +0000 @@ -0,0 +1,152 @@ +<tool id="hgvsparser" name="hgvsParseR" version="@VERSION@+galaxy@GALAXY_VERSION@" profile="20.09" + license="GPL-3.0" > + <description>parsing and building variant descriptor strings compliant with the HGVS standard</description> + <macros> + <token name="@VERSION@">0.1.0</token> + <token name="@GALAXY_VERSION@">0</token> + </macros> + <requirements> + <requirement type="package" version="4.0">r-base</requirement> + </requirements> + <required_files> + <include path="parseHGVS.R" /> + <include path="buildHGVS.R" /> + </required_files> + <command detect_errors="exit_code"><![CDATA[ +Rscript '$configscript' > tmp_output.csv + ]]> + </command> + <configfiles> + <configfile name="configscript"><![CDATA[ +input_file <- '$action_choice.input_file' +input_data <- read.csv(input_file, stringsAsFactors = FALSE) +#if $action_choice.do == "parse": + source('$__tool_directory__/parseHGVS.R') + #if $variant_format == "vcf": + values <- paste0("p.", input_data$'$pos_col') + #else: + values <- input_data$'$pos_col' + #end if + out_data <- parseHGVS(values) + result <- data.frame( + hgvs = out_data$'hgvs', + subject = out_data$'subject', + type = out_data$'type', + start = out_data$'start', + ancestral = out_data$'ancestral', + variant = out_data$'variant' + ) +#else if $action_choice.do == "build": +source('$__tool_directory__/buildHGVS.R') +result <- data.frame() +for (i in 1:nrow(input_data)) { + startPos <- input_data$'$startPos'[i] + startAA <- input_data$'$startAA'[i] + endAA <- input_data$'$endAA'[i] + #if $variant_format == "vcf": + builder <- new.hgvs.builder.p(1) + result_build <- sub("^p\\.", "", with(builder, substitution(startPos, startAA, endAA))) + #else if $variant_format == "classic": + builder <- new.hgvs.builder.p(1) + result_build <- with(builder, substitution(startPos, startAA, endAA)) + #else: + builder <- new.hgvs.builder.p(3) + result_build <- with(builder, substitution(startPos, startAA, endAA)) + #end if + result_row <- cbind(input_data[i, ], result_build) + result <- rbind(result, result_row) +} +#end if +write.csv(result, file = "tmp_output.csv", row.names = FALSE, na="") +]]> + </configfile> + </configfiles> + <inputs> + <conditional name="action_choice"> + <param name="do" type="select" label="Choose the action" > + <option value="parse" selected="true">parse</option> + <option value="build">build</option> + </param> + <when value="parse" > + <param name="input_file" type="data" format="csv" label="Input file" help="File containing column with variant descriptor strings" /> + <param name="pos_col" type="select" label="Variant descriptor column" help="The name of the column in the file that contains the variant descriptor, e.g. p.Glu214aAla (HGVS notation), p.A435D (classic notation), A435D (amino acid change descriptor format used in VCF)"> + <options> + <filter type="data_meta" ref="input_file" key="column_names"/> + </options> + </param> + </when> + <when value="build"> + <param name="input_file" type="data" format="csv" label="Input file" help="File containing columns with mutation position, ancestral amino acid, and variant amino acid" /> + <param name="startPos" type="select" label="Mutation position"> + <options> + <filter type="data_meta" ref="input_file" key="column_names"/> + </options> + </param> + <param name="startAA" type="select" label="Ancestral amino acid"> + <options> + <filter type="data_meta" ref="input_file" key="column_names"/> + </options> + </param> + <param name="endAA" type="select" label="Variant amino acid"> + <options> + <filter type="data_meta" ref="input_file" key="column_names"/> + </options> + </param> + </when> + </conditional> + <param name="variant_format" type="select" label="Variant descriptor format" help="For parsing: choose the format to parse. For building: choose the desired format for the result, regardless of the input format."> + <option value="hgvs" selected="true">HGVS (e.g., p.Glu214aAla)</option> + <option value="classic">classic (e.g., p.A435D)</option> + <option value="vcf">Amino Acid Change used in VCF (e.g., A435D)</option> + </param> + </inputs> + <outputs> + <data name="outfile_parsed" format="csv" from_work_dir="tmp_output.csv" label="parseHGVS result on ${on_string}"> + <filter>action_choice['do'] == 'parse'</filter> + </data> + <data name="outfile_built" format="csv" from_work_dir="tmp_output.csv" label="buildHGVS result on ${on_string}"> + <filter>action_choice['do'] == 'build'</filter> + </data> + </outputs> + <tests> + <test expect_num_outputs="1"> + <!--test 1: parse--> + <param name="variant_format" value="hgvs"/> + <conditional name="action_choice"> + <param name="do" value="parse"/> + <param name="input_file" value="inputParser.csv"/> + <param name="pos_col" value="hgvs_pro"/> + </conditional> + <output name="outfile_parsed" ftype="csv"> + <assert_contents> + <has_text text="ancestral"/> + </assert_contents> + </output> + </test> + <test expect_num_outputs="1"> + <!--test 2: build--> + <param name="variant_format" value="hgvs"/> + <conditional name="action_choice"> + <param name="do" value="build"/> + <param name="input_file" value="inputBuilder.csv"/> + <param name="startPos" value="start"/> + <param name="startAA" value="ancestral"/> + <param name="endAA" value="variant"/> + </conditional> + <output name="outfile_built" ftype="csv"> + <assert_contents> + <has_text text="build"/> + </assert_contents> + </output> + </test> + </tests> + <help><![CDATA[ +**What it does** + +This tool parses and builds variant descriptor strings compliant with the HGVS standard. + + ]]></help> + <citations> + <citation type="doi">10.1186/s13059-019-1845-6</citation> + </citations> +</tool> \ No newline at end of file
