def clsCommandlineInterfaceArgv(argv=['clscli']): commandline=' '.join(argv) executablename = os.path.basename(argv[0]) argv.pop(0) # remove first argument (executable name), because we are explicitly passing it to parse_args parser = argparse.ArgumentParser(description='CATHODE-CLI (Chronological Life Span Analysis Tool for '+ 'High-throughput Optical Density Experiments): '+ 'A commandline interface for extracting the chronological life span '+ 'from multiple time series of optical density measurements.') parser.add_argument('--version', action='store_true', default=None, help='show version and exit') parser.add_argument('infiles', metavar='', nargs='*', help='CATHODE file (.cat) or multiple GATHODE files (.gat)') parser.add_argument('--day', metavar='float', action='append', type=float, dest='days', help='day of lag/growthrate measurement of the corresponding plate file') parser.add_argument('--viabilities', action='store', default=None, help='write viabilities to csv file') parser.add_argument('--siplots', action='store', default=None, help='write survival intergal figures to pdf') parser.add_argument('--labels', action='store', default=None, help='a file containing sampleid -> label and condition -> label mappings') args = parser.parse_args(argv) if args.version: print(executablename+' '+__version__) return 0 if len(args.infiles) == 0: parser.print_help() print('\ninput file(s) missing') return -1 elif args.infiles[0].endswith(".cat"): cls=Cls(serialisedFilename=args.infiles[0]) else: cls=Cls(args.infiles,args.days) if args.viabilities: cls.survivalToCsv(args.viabilities) if args.siplots: labels={} if args.labels is not None: jsonfile=open(args.labels, 'r') labels = json.loads(jsonfile.read()) jsonfile.close() survivalIntegralsToPdf(cls,pdfout=args.siplots, sampleIdToLabel=labels['sampleIdToLabel'] if 'sampleIdToLabel' in labels else None, conditionToLabel=labels['conditionToLabel'] if 'conditionToLabel' in labels else None) return 0