public static double runATrial(int patientIDToLeaveOut) throws Exception
	{
		BufferedReader reader = new BufferedReader(new FileReader(new File(ConfigReader.getChinaDir() 
					+ File.separator + "phylum_taxaAsColumnsLogNorm_WithMetadataNonRare.txt")));
		
		reader.readLine();
		
		File outFile = new File(ConfigReader.getSvmDir() + File.separator + 
				"trainWithNo" + patientIDToLeaveOut+ ".txt");
		
		outFile.delete();
		
		if(outFile.exists())
			throw new Exception("Could not delete " + outFile.getAbsolutePath());
		
		BufferedWriter writer = new BufferedWriter(new FileWriter(outFile));
		
		for(String s= reader.readLine(); s != null; s = reader.readLine())
		{
			writeALine(s, writer, false, patientIDToLeaveOut);
		}
		
		writer.flush();  writer.close();
		
		File trainFile = new File(ConfigReader.getSvmDir() + File.separator + 
						"trainedWithout" + patientIDToLeaveOut + ".txt");
		
		
		trainFile.delete();
		
		if( trainFile.exists())
			throw new Exception("No");
		
		// train with svm_learn.exe -z r trainingSet.txt regressModel
		String[] args = new String[3];
		args[0] = ConfigReader.getSvmDir() + File.separator + "svm_learn.exe";
		args[1] = outFile.getAbsolutePath();
		args[2] = trainFile.getAbsolutePath();
		new ProcessWrapper(args);
		
		if( ! trainFile.exists())
			throw new Exception("No");
		
		String leftOut = getLeftOut(patientIDToLeaveOut);
		
		File classifyFile= new File(ConfigReader.getSvmDir() + File.separator +
								"toClassify" + patientIDToLeaveOut + ".txt");
		
		classifyFile.delete();
		
		if( classifyFile.exists())
			throw new Exception("NO");
		
		BufferedWriter classificationWriter = new BufferedWriter(new FileWriter(classifyFile));
		
		writeALine(leftOut, classificationWriter, true, patientIDToLeaveOut);
		
		classificationWriter.flush();  classificationWriter.close();
		
		File svmOut = new File(ConfigReader.getSvmDir() + File.separator +
								"svmResultFor" + patientIDToLeaveOut + ".txt");
		
		svmOut.delete();
		
		if( svmOut.exists())
			throw new Exception("no");
		
		// classify with svm_classify setToClassify.txt regressModel svmOut.txt
		args = new String[4];
		args[0] = ConfigReader.getSvmDir() + File.separator + "svm_classify.exe";
		args[1] = classifyFile.getAbsolutePath();
		args[2] = trainFile.getAbsolutePath();
		args[3] = svmOut.getAbsolutePath();
		new ProcessWrapper(args);
		
		BufferedReader scoreReader = new BufferedReader(new FileReader(svmOut));
		
		double val = Double.parseDouble(scoreReader.readLine());
		
		scoreReader.close();
		
		return val;
	}