public Set<OneMutation> loadMutationList(String fName, int numMutable, boolean PEMcomp) {
		
		BufferedReader bufread = null;
		try {
			File file = new File(fName);
			FileReader fr = new FileReader(file);
			bufread = new BufferedReader(fr);
		}
		catch (FileNotFoundException e) {
			System.out.println(" ... no mutation list file found. Computing one.");
			return(null);
		}

		boolean done = false;
		String str = null;
		int resultNum = 0;
		Set<OneMutation> mutList = new TreeSet<OneMutation>();
		
		while (!done) {
			try {
				str = bufread.readLine();
			}
			catch ( Exception e ){
			 System.out.println("ERROR: An error occurred while reading input");
			 System.exit(0);
			}

			if (str == null) // stop if we've reached EOF
				done = true;
			else {
				if (PEMcomp) {//PEM computation
					OneMutation tmp = new OneMutation();
					//mutList[resultNum] = new OneMutation();
					//mutList[resultNum].resMut = new int[numMutable];
					tmp.resMut = new int[numMutable];
					for(int q=0;q<numMutable;q++) 
						tmp.resMut[q] = new Integer(getToken(str,1+q)).intValue();
					
					tmp.flagMutType = getToken(str,1+numMutable);
					mutList.add(tmp);
				}
				else {//mutation search
					OneMutation tmp = new OneMutation();
					//mutList[resultNum] = new OneMutation();
					tmp.score = new BigDecimal(getToken(str,1));
					tmp.vol = new Double(getToken(str,2)).doubleValue();
					tmp.resTypes = new String[numMutable];
					for(int q=0;q<numMutable;q++) {
						tmp.resTypes[q] = getToken(str,3+q);	
					}
					mutList.add(tmp);
				}
				
				resultNum++;
				/*if (resultNum >= mutList.length){
					OneMutation newArray[] = new OneMutation[mutList.length+1000];
					System.arraycopy(mutList,0,newArray,0,resultNum);
					mutList = newArray;
				}*/
			}
		}
					
		// We're done reading them in
		try {
			bufread.close();
		}
		catch(Exception e)
		{}

		// Resize completed mutation array
		/*OneMutation temp[] = new OneMutation[resultNum];
		System.arraycopy(mutList,0,temp,0,resultNum);
		mutList = temp;*/
		System.out.println(" ... read "+mutList.size()+" mutations from mutation list "+fName);
		return(mutList);
	}