public void readFasta(String filename) {
	int ch;
	int j;

	initializeMatrix(filename);

	try {
	    File inputFile = new File(filename);
	    BufferedReader in = new BufferedReader(new FileReader(inputFile));

	    ch = in.read();
	    for (int i = 0; i < numTaxa; i++) {
		while (ch != '>')
		    ch = in.read();

		ch = in.read();
		Name[i] = new String();
		while (ch != '\n') {
		    Name[i] = Name[i] + (char) ch;
		    ch = in.read();
		}
		// now uppercase it
		Name[i] = Name[i].toUpperCase();

		// j = 0;
		Data[i] = "";
		StringBuffer Sequence = new StringBuffer();
		ch = in.read();
		while (ch != '>' && ch != -1) {
		    if (ch != '\n' && ch != ' ') {
			Sequence.append((char) ch);
		    }
		    ch = in.read();
		}
		Data[i] = new String(Sequence.toString().toUpperCase());
		// Data[i] = new String(Sequence, 0, j);

		// System.out.println ("hello " + i + "|" + Name[i] + "|" +
		// Data[i] + "|");
	    }
	} catch (FileNotFoundException e) {
	    System.err.println("FileStreamsTest: " + e);
	} catch (IOException e) {
	    System.err.println(e);
	    System.exit(-1);
	}
    }