# HG changeset patch # User iuc # Date 1492031849 14400 # Node ID 372967836e98d59dacd47436b77800f90a8537a7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/column_remove_by_header commit 2150a3264364471090b650bdffde9f9c0b47ac39 diff -r 000000000000 -r 372967836e98 column_remove_by_header.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/column_remove_by_header.py Wed Apr 12 17:17:29 2017 -0400 @@ -0,0 +1,35 @@ +#!/usr/bin/env python + +import subprocess +import sys + +AWK_CMD = """BEGIN{FS="%s"; OFS="%s";} {print %s;}""" + +input_filename = sys.argv[1] +output_filename = sys.argv[2] +delimiter = sys.argv[3] +keep_columns = sys.argv[4] +strip_characters = sys.argv[5] + +if keep_columns == "--keep": + keep_columns = True +else: + keep_columns = False + +names = [] +for name in sys.argv[6:]: + names.append( name ) + +header = None +with open( input_filename, 'r' ) as fh: + header = fh.readline().strip( '\r\n' ) +header = header.split( delimiter ) +columns = [] +for i, key in enumerate( header, 1 ): + if i == 1 and strip_characters: + key = key.lstrip( strip_characters ) + if ( keep_columns and key in names ) or ( not keep_columns and key not in names ): + columns.append( i ) +print( "Kept", len( columns ), "of", len( header ), "columns." ) +awk_cmd = AWK_CMD % ( delimiter, delimiter, ",".join( map( lambda x: "$%s" % x, columns ) ) ) +sys.exit( subprocess.call( [ 'gawk', awk_cmd, input_filename ], stdout=open( output_filename, 'wb+' ), shell=False ) ) diff -r 000000000000 -r 372967836e98 column_remove_by_header.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/column_remove_by_header.xml Wed Apr 12 17:17:29 2017 -0400 @@ -0,0 +1,69 @@ + + + by heading + + + python + gawk + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 000000000000 -r 372967836e98 test-data/in_1.tabular --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/in_1.tabular Wed Apr 12 17:17:29 2017 -0400 @@ -0,0 +1,4 @@ +#KEY b c a +one 1-1 1-2 1-3 +two 1-4 1-5 1-6 +three 1-7 1-8 1-9 diff -r 000000000000 -r 372967836e98 test-data/out_1.tabular --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/out_1.tabular Wed Apr 12 17:17:29 2017 -0400 @@ -0,0 +1,4 @@ +#KEY b c +one 1-1 1-2 +two 1-4 1-5 +three 1-7 1-8 diff -r 000000000000 -r 372967836e98 test-data/out_2.tabular --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/out_2.tabular Wed Apr 12 17:17:29 2017 -0400 @@ -0,0 +1,4 @@ +#KEY a +one 1-3 +two 1-6 +three 1-9