    private void parseCommandLineArguments(String[] args)
    {
	try
	{
	    Options options = new Options();
	    options.addOption(new Option("h","help",false,"Shows this help"));
	    options.addOption(new Option("U","nfsp",true,"Path to directory with UCSC files."));
	    options.addOption(new Option("S","serialize",false,"Serialize"));
	    options.addOption(new Option("D","deserialize",true,"Path to serialized file with UCSC data"));
	    options.addOption(new Option("V","vcf",true,"Path to VCF file"));
	    options.addOption(new Option("J","janno",false,"Output Jannovar format"));
	    options.addOption(new Option(null,"download-ucsc",false,"Download UCSC KnownGene data"));
	    options.addOption(new Option(null,"ftp-proxy",true,"FTP Proxy"));
	    options.addOption(new Option(null,"ftp-proxy-port",true,"FTP Proxy Port"));
	    Parser parser = new GnuParser();
	    CommandLine cmd = parser.parse(options,args);
	    if (cmd.hasOption("h") || cmd.hasOption("H") || args.length==0)
	    {
		HelpFormatter formatter = new HelpFormatter();
		formatter.printHelp("java -jar Jannovar.jar [-options]", options);
		usage();
		System.exit(0);
	    }
	    if (cmd.hasOption("J")) {
		this.jannovarFormat = true; 
	    } else {
		this.jannovarFormat = false;
	    }
	    if (cmd.hasOption("download-ucsc")) {
		this.downloadUCSC = true;
		this.performSerialization = true;
	    } else {
		this.downloadUCSC = false;
	    }
	    if (cmd.hasOption('S')) {
		this.performSerialization = true;
	    }
	    if (cmd.hasOption("proxy")) {
		this.proxy = cmd.getOptionValue("proxy");
	    } 
	    if (cmd.hasOption("proxy-port")) {
		this.proxyPort = cmd.getOptionValue("proxy-port");
		}
	    if (cmd.hasOption("U")) {
		this.ucscDirPath = getRequiredOptionValue(cmd,'U');
	    }
	    if (cmd.hasOption('D')) {
		this.serializedFile = cmd.getOptionValue('D');
	    }
	    if (cmd.hasOption("V"))
		this.VCFfilePath =  cmd.getOptionValue("V");
	} catch (ParseException pe)
	{
	    System.err.println("Error parsing command line options");
	    System.err.println(pe.getMessage());
	    System.exit(1);
	}
    }

    private void parseCommandLineArguments(String[] args)
    {
	try
	{
	    Options options = new Options();
	    options.addOption(new Option("h","help",false,"Shows this help"));
	    options.addOption(new Option("U","nfsp",true,"Path to directory with UCSC files."));
	    options.addOption(new Option("S","serialize",false,"Serialize"));
	    options.addOption(new Option("D","deserialize",true,"Path to serialized file with UCSC data"));
	    options.addOption(new Option("V","vcf",true,"Path to VCF file"));
	    options.addOption(new Option("J","janno",false,"Output Jannovar format"));
	    options.addOption(new Option(null,"download-ucsc",false,"Download UCSC KnownGene data"));
	    options.addOption(new Option(null,"proxy",true,"FTP Proxy"));
	    options.addOption(new Option(null,"proxy-port",true,"FTP Proxy Port"));
	    Parser parser = new GnuParser();
	    CommandLine cmd = parser.parse(options,args);
	    if (cmd.hasOption("h") || cmd.hasOption("H") || args.length==0)
	    {
		HelpFormatter formatter = new HelpFormatter();
		formatter.printHelp("java -jar Jannovar.jar [-options]", options);
		usage();
		System.exit(0);
	    }
	    if (cmd.hasOption("J")) {
		this.jannovarFormat = true; 
	    } else {
		this.jannovarFormat = false;
	    }
	    if (cmd.hasOption("download-ucsc")) {
		this.downloadUCSC = true;
		this.performSerialization = true;
	    } else {
		this.downloadUCSC = false;
	    }
	    if (cmd.hasOption('S')) {
		this.performSerialization = true;
	    }
	    if (cmd.hasOption("proxy")) {
		this.proxy = cmd.getOptionValue("proxy");
	    } 
	    if (cmd.hasOption("proxy-port")) {
		this.proxyPort = cmd.getOptionValue("proxy-port");
		}
	    if (cmd.hasOption("U")) {
		this.ucscDirPath = getRequiredOptionValue(cmd,'U');
	    }
	    if (cmd.hasOption('D')) {
		this.serializedFile = cmd.getOptionValue('D');
	    }
	    if (cmd.hasOption("V"))
		this.VCFfilePath =  cmd.getOptionValue("V");
	} catch (ParseException pe)
	{
	    System.err.println("Error parsing command line options");
	    System.err.println(pe.getMessage());
	    System.exit(1);
	}
    }
