public static void pointMutation(String[] args) {

		final String ID = args[0];
		ExecutorService exec = Executors.newFixedThreadPool(Runtime
				.getRuntime().availableProcessors());
		System.out.println("Start with "
				+ Runtime.getRuntime().availableProcessors() + " threads");
		try {

			// test with following mutation frequencies:
			double[] mutationFrequencies = { 0, 0.02, 0.04, 0.06, 0.08, 0.10,
					0.12, 0.14, 0.16, 0.18, 0.2, 0.25 };
			int[] fragmentLengths = { 400, 150 };
			double[] percentageReadLengths = { 0.05 };
			int[] readLengths = { 30, 40, 50, 60, 70, 80, 90, 100, 200, 400 };
			for (final double mutFreq : mutationFrequencies) {
				for (final double p : percentageReadLengths) {
					for (final int readLength : readLengths) {
						for (final int i : fragmentLengths) {
							exec.submit(new Runnable() {
								@Override
								public void run() {
									try {
										testDetectabilityPointMutation(
												readLength,
												(int) (readLength * p), i,
												mutFreq, ID + "_" + i + "_" + p
														+ "_" + readLength
														+ "_" + mutFreq);
									} catch (Exception e1) {
										e1.printStackTrace();
									}
									try {
										PrintWriter out = new PrintWriter(
												new BufferedWriter(
														new FileWriter(
																"output/"
																		+ ID
																		+ "_"
																		+ i
																		+ "_"
																		+ p
																		+ "_"
																		+ readLength
																		+ "_"
																		+ mutFreq
																		+ "/log.txt",
																true)));
										out.println("Ran argos with:\tREAD_LENGTH\t"
												+ readLength
												+ "\tSTEP_SIZE\t"
												+ (int) (readLength * p)
												+ "\tFRAGMENT_SIZE\t"
												+ i
												+ "\tPercReadLen\t" + p + "\n");
										out.close();
									} catch (IOException e) {
										e.printStackTrace();
									}
								}

							});
						}
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			exec.shutdown();
		}

	}