@Override
	public String toString() {
		StringBuffer sb = new StringBuffer();

		if (!hasData()) {
			sb.append("No results available (empty input?)");
		} else {
			// Show title
			sb.append("Sample ,");
			if (sampleNames != null) {
				for (String sname : sampleNames)
					sb.append(sname + ",");
			}
			sb.append("Total");
			sb.append("\n");

			// Show transitions
			long sumTs = 0;
			sb.append("Transitions ,");
			for (int i = 0; i < countTs.length; i++) {
				sb.append(countTs[i] + ",");
				sumTs += countTs[i];
			}
			sb.append(sumTs);
			sb.append("\n");

			// Show transversions
			long sumTv = 0;
			sb.append("Transversions ,");
			for (int i = 0; i < countTv.length; i++) {
				sb.append(countTv[i] + ",");
				sumTv += countTv[i];
			}
			sb.append(sumTv);
			sb.append("\n");

			// Show transversions
			sb.append("Ts/Tv ,");
			for (int i = 0; i < countTv.length; i++) {
				double tstv = ((double) countTs[i]) / ((double) countTv[i]);
				sb.append(String.format("%.3f,", tstv));
			}
			double tstv = ((double) sumTs) / ((double) sumTv);
			sb.append(String.format("%.3f", tstv));
			sb.append("\n");
		}

		return sb.toString();
	}