Mercurial > repos > immport-devteam > check_fcs_headers
view check_fcs_headers/getFCSheaders.py @ 0:d3957a51cc51 draft
Uploaded
author | immport-devteam |
---|---|
date | Mon, 27 Feb 2017 12:16:44 -0500 |
parents | |
children |
line wrap: on
line source
#!/usr/bin/env python ###################################################################### # Copyright (c) 2016 Northrop Grumman. # All rights reserved. ###################################################################### from __future__ import print_function import sys import os from argparse import ArgumentParser def get_fcs_marker_list(marker_file): with open(marker_file, "r") as mrkrs: useless_first_line = mrkrs.readline() channels = [] markers = [] for lines in mrkrs: stuff = lines.strip().split("\t") channels.append(stuff[1].strip("\"")) markers.append(stuff[2].strip("\"")) fcs_markers = [ "\t".join(channels), "\t".join(markers) ] return(fcs_markers) def print_fcs_headers(files, filenames, outfile, tool_dir): headers = {} tool = "/".join([tool_dir, "getFCSheader.R"]) for eachfile in files: tmp_output = "tmp_fcs_headers.txt" run_command = " ". join(["Rscript --slave --vanilla", tool, "--args", eachfile, tmp_output]) os.system(run_command) headers[eachfile] = get_fcs_marker_list(tmp_output) with open(outfile, "w") as outf: for i, flc in enumerate(files): outf.write("\t".join([filenames[i], "channels", headers[flc][0]]) + "\n") for j, flm in enumerate(files): outf.write("\t".join([filenames[j], "markers", headers[flm][1]]) + "\n") return if __name__ == "__main__": parser = ArgumentParser( prog="GetFCSHeaders", 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( '-t', dest="tool_dir", required=True, help="Path to the tool directory") 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_fcs_headers(input_files, file_names, args.output_file, args.tool_dir) sys.exit(0)