@Override
	public boolean run() {
		//---
		// Initialize 
		//---
		if (verbose) Timer.showStdErr("Loading config");
		config = new Config(genomeVer);

		if (verbose) Timer.showStdErr("Loading predictor");
		snpEffectPredictor = config.loadSnpEffectPredictor();

		if (verbose) Timer.showStdErr("Building interval forest");
		snpEffectPredictor.buildForest();

		//---
		// Count lengths
		//---
		effectiveCodingLength();

		readsOnMarkersModel = new ReadsOnMarkersModel(snpEffectPredictor);
		readsOnMarkersModel.setVerbose(verbose);

		if (verbose) Timer.showStdErr("Counting bases");
		readsOnMarkersModel.run(); // Count 
		if (!quiet) System.out.println(readsOnMarkersModel);

		// Perform some random sampling
		if ((numIterations > 0) && (readLength > 0)) readsOnMarkersModel.randomSampling(numIterations, readLength, numReads);

		return true;
	}