Mercurial > repos > immport-devteam > check_headers
diff getHeaders.py @ 1:05440ef97f8b draft default tip
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/check_headers commit 14d780f8710fb0962a85c262d0689a9551f4f8e1"
author | azomics |
---|---|
date | Tue, 14 Jul 2020 09:46:31 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/getHeaders.py Tue Jul 14 09:46:31 2020 -0400 @@ -0,0 +1,73 @@ +#!/usr/bin/env python +###################################################################### +# Copyright (c) 2016 Northrop Grumman. +# All rights reserved. +###################################################################### +# +# Version 1.2 - May 2018 +# added leeway for files with different nb of headers +# + + +import sys + +from argparse import ArgumentParser + + +def print_headers(files, filenames, outfile): + header_table = {} + for i, eachfile in enumerate(files): + with open(eachfile, "r") as ef: + headers = ef.readline().strip() + header_table[filenames[i]] = headers.split("\t") + + h = 0 + for f in header_table: + j = len(header_table[f]) + 1 + if j > h: + h = j + + idx = [str(x) for x in range(1, h)] + + with open(outfile, "w") as outf: + outf.write("Index\t") + outf.write("\t".join(idx) + "\n") + for f in header_table: + if len(header_table[f]) < h: + for k in range(len(header_table[f]), h-1): + header_table[f].append("") + sys.stderr.write(str(len(header_table[f]))) + outf.write(f + "\t") + outf.write("\t".join(header_table[f]) + "\n") + return + + +if __name__ == "__main__": + parser = ArgumentParser( + prog="GetHeaders", + description="Gets the headers of all files in given set.") + + parser.add_argument( + '-i', + dest="input_files", + required=True, + action='append', + help="File location for the text files.") + + parser.add_argument( + '-n', + dest="file_names", + required=True, + action='append', + help="File names.") + + parser.add_argument( + '-o', + dest="output_file", + required=True, + help="Name of the output file.") + + args = parser.parse_args() + input_files = [f for f in args.input_files] + file_names = [fn for fn in args.file_names] + print_headers(input_files, file_names, args.output_file)