One of the technologies being used for discovering biomarkers for disease states, toxicity and treatment is Surface Enhanced Laser Desorption and Ionization (SELDI) combined with time of flight (TOF) mass spectrometry. SELDI combines highly specific sample enrichment with a sensitive mass measurement, thereby allowing researchers to discover very low abundant (down to 10 fmol) biomarkers. However, the volume of data obtained with SELDI can quickly overwhelm the researcher's ability to analyze manually. For example, SELDI data contains over 146,000 data values per spectrum, and a single drug response analysis requires comparing data points across dozens of spectra to find peak locations that vary consistently with drug treatment. SELDI Filter is an interactive system that I developed to automate much of this tedious analysis process. It integrates with the Ciphergen ProteinChip(tm) software that researchers are using to collect the SELDI data, supports interactive analysis of the data using a variety of machine learning algorithms, and presents the analysis results in either Microsoft Word(tm) or Microsoft PowerPoint(tm) for ease of integration into papers and presentations. SELDI Filter currently automates the following analysis methods: ANOVA, Discriminant Analysis, Partition Analysis and Neural Network Analysis. However, due to its modular design, other techniques can quickly and easily be added. SELDI Filter also allows the researcher to group the collected spectra hierarchically. This flexible grouping scheme allows SELDI Filter to accommodate many different experimental designs and datasets. To deal with the size and complexity of SELDI data, SELDI Filter uses two different types of filtering. First, the peaks that are found to be significantly above the background noise are pulled out of the data. Next, groups of spectra are taken two at a time and their significant peaks are compared. Only those peaks that are significantly different (by ANOVA) in at least one pairwise comparison satisfy this pairwise filtering. By combining these two types of filtering, we are able to eliminate many of the peaks that are not significant for the problem being studied. This ``feature selection'' dramatically improves the results of the analysis techniques used. At this point it is worth mentioning that, in contrast to the rest of the experiments outlined in this paper, SELDI Filter does not use a testing set or cross validation. There are two reasons why this decision was made. First, SELDI Filter was developed as a prototype system. Therefore, the focus of its development was on the user interface aspect of the system and not on the details of the underlying analysis algorithms. Second, the proteins corresponding to any peaks that were found by the system to be significant, were isolated and tested using standard biochemical techniques. In this way, there was an ``external validation'' to the results of the system, as opposed to an ``internal validation'' such as using cross-validation or a held-aside test set. Discriminant Analysis seeks to find those peaks that are best able to discriminate among the specified groups. SELDI Filter creates a ``canonical plot'' which graphically illustrates the results of discriminant analysis. Due to the nature of this analysis, peaks that are similar to those already chosen are discarded. To deal with this limitation, the report that SELDI Filter creates contains a summary of the discriminants chosen as well as the peaks that were highly covariant with the chosen peaks. The report also contains scores for each discriminant and a confusion matrix for the misclassified spectra. Trends in the data at each discriminant peak is also plotted. This is important when searching for biomarkers that exhibit certain condition-dependencies.