Mercurial > repos > devteam > convert_characters
changeset 1:81a6c3de5de3 draft default tip
"planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/convert_characters commit f929353ffb0623f2218d7dec459c7da62f3b0d24"
author | devteam |
---|---|
date | Mon, 06 Jul 2020 18:10:56 +0000 |
parents | 3100886bf698 |
children | |
files | convert_characters.py convert_characters.xml |
diffstat | 2 files changed, 96 insertions(+), 85 deletions(-) [+] |
line wrap: on
line diff
--- a/convert_characters.py Mon Nov 09 11:25:21 2015 -0500 +++ b/convert_characters.py Mon Jul 06 18:10:56 2020 +0000 @@ -1,42 +1,45 @@ #!/usr/bin/env python -#By, Guruprasad Ananda. +""" +By, Guruprasad Ananda. +""" +from __future__ import print_function -from galaxy import eggs -import sys, re +import re +import sys -def stop_err(msg): - sys.stderr.write(msg) - sys.exit() - + def main(): if len(sys.argv) != 4: - stop_err("usage: convert_characters infile from_char outfile") + sys.exit("usage: convert_characters infile from_char outfile") try: - fin = open(sys.argv[1],'r') - except: - stop_err("Input file cannot be opened for reading.") - + fin = open(sys.argv[1], 'r') + except Exception: + sys.exit("Input file cannot be opened for reading.") + from_char = sys.argv[2] - + try: - fout = open(sys.argv[3],'w') - except: - stop_err("Output file cannot be opened for writing.") - - char_dict = {'T':'\t','s':'\s','Dt':'\.','C':',','D':'-','U':'_','P':'\|','Co':':'} - from_ch = char_dict[from_char] + '+' #making an RE to match 1 or more occurences. + fout = open(sys.argv[3], 'w') + except Exception: + sys.exit("Output file cannot be opened for writing.") + + char_dict = {'T': r'\t', 's': r'\s', 'Dt': r'\.', 'C': r',', 'D': r'-', + 'U': r'_', 'P': r'\|', 'Co': r':'} + # making an RE to match 1 or more occurences. + from_ch = char_dict[from_char] + '+' skipped = 0 - + for line in fin: line = line.strip() try: - fout.write("%s\n" %(re.sub(from_ch,'\t',line))) - except: + fout.write("%s\n" % (re.sub(from_ch, '\t', line))) + except Exception: skipped += 1 - + if skipped: - print "Skipped %d lines as invalid." %skipped - -if __name__ == "__main__": - main() \ No newline at end of file + print("Skipped %d lines as invalid." % skipped) + + +if __name__ == "__main__": + main()
--- a/convert_characters.xml Mon Nov 09 11:25:21 2015 -0500 +++ b/convert_characters.xml Mon Jul 06 18:10:56 2020 +0000 @@ -1,58 +1,66 @@ -<tool id="Convert characters1" name="Convert" version="1.0.0"> - <description>delimiters to TAB</description> - <command interpreter="python">convert_characters.py "${input}" "${convert_from}" "${out_file1}"</command> - <inputs> - <param name="convert_from" type="select" label="Convert all"> - <option value="s">Whitespaces</option> - <option value="T">Tabs</option> - <!--<option value="Sp">Spaces</option>--> - <option value="Dt">Dots</option> - <option value="C">Commas</option> - <option value="D">Dashes</option> - <option value="U">Underscores</option> - <option value="P">Pipes</option> - <option value="Co">Colons</option> - </param> - <param format="txt" name="input" type="data" label="in Query"/> - </inputs> - <outputs> - <data format="tabular" name="out_file1" /> - </outputs> - <tests> - <test> - <param name="convert_from" value="s"/> - <param name="input" value="1.bed"/> - <output name="out_file1" file="eq-convert.dat"/> - </test> - <test> - <param name="convert_from" value="s"/> - <param name="input" value="a.txt"/> - <output name="out_file1" file="a.tab"/> - </test> - </tests> - <help> - -**What it does** - -Converts all delimiters of a specified type into TABs. Consecutive characters are condensed. For example, if columns are separated by 5 spaces they will converted into 1 tab. - ------ - -**Example** - -- Input file:: - - chrX||151283558|151283724|NM_000808_exon_8_0_chrX_151283559_r|0|- - chrX|151370273|151370486|NM_000808_exon_9_0_chrX_151370274_r|0|- - chrX|151559494|151559583|NM_018558_exon_1_0_chrX_151559495_f|0|+ - chrX|151564643|151564711|NM_018558_exon_2_0_chrX_151564644_f||||0|+ - -- Converting all pipe delimiters of the above file to TABs will get:: - - chrX 151283558 151283724 NM_000808_exon_8_0_chrX_151283559_r 0 - - chrX 151370273 151370486 NM_000808_exon_9_0_chrX_151370274_r 0 - - chrX 151559494 151559583 NM_018558_exon_1_0_chrX_151559495_f 0 + - chrX 151564643 151564711 NM_018558_exon_2_0_chrX_151564644_f 0 + - -</help> -</tool> +<tool id="Convert characters1" name="Convert" version="1.0.1"> + <description>delimiters to TAB</description> + <requirements> + <requirement type="package" version="3.8">python</requirement> + </requirements> + <command> + python '$__tool_directory__/convert_characters.py' + '${input}' + '${convert_from}' + '${out_file1}' + </command> + <inputs> + <param name="convert_from" type="select" label="Convert all"> + <option value="s">Whitespaces</option> + <option value="T">Tabs</option> + <!--<option value="Sp">Spaces</option>--> + <option value="Dt">Dots</option> + <option value="C">Commas</option> + <option value="D">Dashes</option> + <option value="U">Underscores</option> + <option value="P">Pipes</option> + <option value="Co">Colons</option> + </param> + <param format="txt" name="input" type="data" label="in Query"/> + </inputs> + <outputs> + <data format="tabular" name="out_file1" /> + </outputs> + <tests> + <test> + <param name="convert_from" value="s"/> + <param name="input" value="1.bed"/> + <output name="out_file1" file="eq-convert.dat"/> + </test> + <test> + <param name="convert_from" value="s"/> + <param name="input" value="a.txt"/> + <output name="out_file1" file="a.tab"/> + </test> + </tests> + <help> + +**What it does** + +Converts all delimiters of a specified type into TABs. Consecutive characters are condensed. For example, if columns are separated by 5 spaces they will converted into 1 tab. + +----- + +**Example** + +- Input file:: + + chrX||151283558|151283724|NM_000808_exon_8_0_chrX_151283559_r|0|- + chrX|151370273|151370486|NM_000808_exon_9_0_chrX_151370274_r|0|- + chrX|151559494|151559583|NM_018558_exon_1_0_chrX_151559495_f|0|+ + chrX|151564643|151564711|NM_018558_exon_2_0_chrX_151564644_f||||0|+ + +- Converting all pipe delimiters of the above file to TABs will get:: + + chrX 151283558 151283724 NM_000808_exon_8_0_chrX_151283559_r 0 - + chrX 151370273 151370486 NM_000808_exon_9_0_chrX_151370274_r 0 - + chrX 151559494 151559583 NM_018558_exon_1_0_chrX_151559495_f 0 + + chrX 151564643 151564711 NM_018558_exon_2_0_chrX_151564644_f 0 + + + </help> +</tool>