def parse_arguments()

in src/main/python/vcf_snpeff_annotation.py [0:0]


def parse_arguments(argv):
	sample,srcfile,annofile,tool,canonical_transcripts,snpsift,snpsift_db,transvar = None,None,None,None,None,None,None,None
	dbsnp,dbnsfp,coding,pass_status = False,False,False,False
	refversion = 'hg19'

	try:
		opts, args = getopt.getopt(argv[1:], "s:i:o:t:r:h", \
			["sample=","input=", "output=", "tool=", "refversion=", "canonical=","snpsift=","transvar=","snpsift_db=", \
			"dbsnp","dbnsfp","coding_only","pass_only"])
	except getopt.GetoptError as err:
		# print help information and exit:
		print str(err)  # will print something like "option -a not recognized"
		usage()

	for opt, arg in opts:
		if opt == '-h':
			usage()
			sys.exit()
		
		elif opt in ("-s", "--sample"):
			sample = arg
			
		elif opt in ("-i", "--input"):
			srcfile = arg
			if not os.path.isfile(srcfile):
				raise ArgumentError("Argument Error: Invalid variant vcf file passed.")
			if annofile == None:
				annofile = srcfile+".annotation"
				
		elif opt in ("-o", "--output"):
			annofile = arg
		
		elif opt in ("-t", "--tool"):
			tool = arg
			
		elif opt in ("-r", "--refversion"):
			refversion = arg
			
		elif opt in ("--canonical"):
			canonical_transcripts = arg
			if not os.path.isfile(canonical_transcripts):
				raise ArgumentError("Argument Error: Invalid canonical transcript passed.")
		
		elif opt in ("--snpsift"):
			snpsift = arg
			if not os.path.exists(snpsift):
				raise ArgumentError("Argument Error: Invalid snpsift executable passed.")
		
		elif opt in ("--transvar"):
			transvar = arg
			if not os.access(transvar, os.X_OK):
				raise ArgumentError("Argument Error: Invalid transvar executable passed.")
		
		elif opt in ("--snpsift_db"):
			snpsift_db = arg
			if not os.path.exists(snpsift_db):
				raise ArgumentError("Argument Error: Invalid snpsift database directory passed.")
		
		elif opt in ("--dbnsfp"):
			dbnsfp = True
		
		elif opt in ("--dbsnp"):
			dbsnp = True
			
		elif opt in ("--coding_only"):
			coding = True
		
		elif opt in ("--pass_only"):
			pass_status = True
			
		else:
			raise ArgumentError("Bad argument: I don't know what %s is" % arg)

	if sample is None or srcfile is None or canonical_transcripts is None or snpsift is None or transvar is None:
		raise ArgumentError("You need to supply an input vcf, a canonical transcript list, an snpeff directory and a transvar executable!") 
		
    # return argument values
	return sample,srcfile,annofile,tool,refversion,canonical_transcripts,dbsnp,dbnsfp,snpsift,snpsift_db,transvar,coding,pass_status