@Override
	public boolean run() {
		if (verbose) Timer.showStdErr("Checking database using protein sequences");

		// Load config
		if (config == null) loadConfig();

		// Read proteins
		if (verbose) Timer.showStdErr("Reading proteins from file '" + proteinFile + "'...");
		readProteinFile(); // Load Protein
		if (verbose) Timer.showStdErr("done (" + proteinByTrId.size() + " Proteins).");

		// Load predictor
		if (config.getSnpEffectPredictor() == null) {
			if (verbose) Timer.showStdErr("Reading database...");
			config.loadSnpEffectPredictor(); // Read snpEffect predictor
			if (verbose) Timer.showStdErr("done");
		}

		// Compare proteins
		if (verbose) Timer.showStdErr("Comparing Proteins...");
		proteinCompare();
		if (verbose) Timer.showStdErr("done");

		return true;
	}