public void load(String jasparMatrixFile) {
		pwms = new HashMap<String, Pwm>();

		if (verbose) Timer.showStdErr("Loading jaspar matrix from file " + jasparMatrixFile);

		String lines[] = Gpr.readFile(jasparMatrixFile, true).split("\n");

		for (int i = 0; i < lines.length;) {
			String name = lines[i++];
			String id = "";

			if (name.startsWith(">")) {
				String nameSplit[] = name.substring(1).split("\\s");
				id = nameSplit[0];
				name = nameSplit[1];
			} else throw new RuntimeException("Error: Name line does not start with '>' : " + name);

			int weightsA[] = parseWeights(lines[i++], "A");
			int weightsC[] = parseWeights(lines[i++], "C");
			int weightsG[] = parseWeights(lines[i++], "G");
			int weightsT[] = parseWeights(lines[i++], "T");

			// Sanity check
			if (weightsA.length != weightsC.length) throw new RuntimeException("Weight lengths differ: " + weightsA.length + ", " + weightsC.length + ", " + weightsG.length + ", " + weightsT.length);

			// Create PWM
			Pwm pwm = new Pwm(weightsA.length);
			pwm.setName(name);
			pwm.setId(id);
			pwm.setCounts('A', weightsA);
			pwm.setCounts('C', weightsC);
			pwm.setCounts('G', weightsG);
			pwm.setCounts('T', weightsT);
			pwm.calcLogOddsWeight();

			// Add to pwms hash
			pwms.put(id, pwm);
		}
	}