boolean calc(GtexExperiment gtexExperiment) {
		boolean changed = true;
		int iteration;

		if (verbose) System.err.print(gtexExperiment.getTissueTypeDetail() + "\t");
		for (iteration = 0; changed && iteration < MAX_ITERATIONS; iteration++) {
			changed = false;
			HashSet<Entity> done = new HashSet<Entity>();

			for (Entity e : this) {
				double outPrev = e.getOutput();
				double out = e.calc(done);

				// Output changed?
				if (Math.abs(outPrev - out) > MAX_CONVERGENCE_DIFFERENCE) changed = true;
			}
			if (verbose) System.err.print(".");
		}
		if (verbose) System.err.println(" " + iteration);

		return changed;
	}