From a user's perspective, it would be nice to have something like the following:

First, initialize the experiment class

 e = new Experiment(<params>);
    OR
 e = new Experiment();
 e.setParams(<something>);

Then, read all the mzXML files of interest

 e.loadRun(<filename 1>);
 e.loadRun(<filename 2>);
 ...
 e.loadRun(<filename n>);

Finally, read the predicted peaks from a database or read a FASTA file and digest it right in place.

 e.loadPeptideDB(<filename>);
     OR
 e.createPeptideDB(<fastafile>,<amino acid masses>,<protease>);

I guess, that's the simplest way to get all the data in memory.

For our classes, that means that the user will only interact with the Experiment class, which capsules all the underlying data. This class keeps several LC/MS runs which were each loaded by the loadRun() method from a mzXML file. It also keeps the peptide peaks predicted from a sequence database digest. Using the constructor or the setParams()-method, the user can decide on several behaviours of the experiment; the most important one would possibly be to give a mass range of interest, since we are usually not interested in peptides or peaks of more than 4000 Da or less than 400 Da, say.

Mass-Spec Framework Class Structure (last edited 2007-06-27 13:29:25 by HansMichaelKaltenbach)