ExampleCode1 - PGB-LIV/jmzquantml GitHub Wiki

###Using the API -- Example 1: MzQuantMLCloner

package uk.ac.liv.jmzquantmlexample;

import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.util.Iterator; 
import uk.ac.liv.jmzqml.MzQuantMLElement; 
import uk.ac.liv.jmzqml.model.mzqml.*; 
import uk.ac.liv.jmzqml.xml.io.MzQuantMLMarshaller; 
import uk.ac.liv.jmzqml.xml.io.MzQuantMLUnmarshaller;

/**

An example of using the API to make a clone file from CPTAC-Progenesis-small-example.mzq.
@author Da Qi
@institute University of Liverpool
@time 20-Jun-2013 14:48:18 */
public class MzQuantMLCloner {

public static void main(String[] args) throws IOException {

    File mzqFile = new File("CPTAC-Progenesis-small-example.mzq");

    // create an MzQuantMLUnmarsahller object
    MzQuantMLUnmarshaller um = new MzQuantMLUnmarshaller(mzqFile);

    // create an MzQuantML object for marsahlling
    MzQuantML mzq = new MzQuantML();

    // retrieve every attributes and elements from the mzQuantML file
    String mzqId = um.getMzQuantMLId();
    String mzqName = um.getMzQuantMLName();
    String mzqVersion = um.getMzQuantMLVersion();

    // three ways of unmarshalling an mzQuantML element: 
    CvList cvList = um.unmarshal(uk.ac.liv.jmzqml.model.mzqml.CvList.class); //1. class name
    AuditCollection ac = um.unmarshal(MzQuantMLElement.AuditCollection); //2. member of MzQuantMLElement
    AnalysisSummary as = um.unmarshal("/MzQuantML/AnalysisSummary"); //3a. XPath
    InputFiles inputFiles = um.unmarshal(MzQuantMLElement.InputFiles.getXpath()); //3b. XPath
    SoftwareList softList = um.unmarshal(MzQuantMLElement.SoftwareList);
    DataProcessingList dpList = um.unmarshal(MzQuantMLElement.DataProcessingList);
    Iterator<BibliographicReference> brIter = 
            um.unmarshalCollectionFromXpath(MzQuantMLElement.BibliographicReference);
    AssayList assayList = um.unmarshal(MzQuantMLElement.AssayList);
    StudyVariableList svList = um.unmarshal(MzQuantMLElement.StudyVariableList);
    ProteinList protList = um.unmarshal(MzQuantMLElement.ProteinList);
    Iterator<PeptideConsensusList> pepConListIter = 
            um.unmarshalCollectionFromXpath(MzQuantMLElement.PeptideConsensusList);
    Iterator<FeatureList> ftListIter = um.unmarshalCollectionFromXpath(MzQuantMLElement.FeatureList);

    MzQuantMLMarshaller m = new MzQuantMLMarshaller();
    FileWriter writer = null;

    try {
        writer = new FileWriter("clonedMzQuantML.mzq");

        // XML header
        writer.write(m.createXmlHeader() + "\n");

        // mzQuantML start tag
        writer.write(m.createMzQuantMLStartTag(mzqId) + "\n");

        m.marshall(cvList, writer);
        writer.write("\n");
        m.marshall(ac, writer);
        writer.write("\n");
        m.marshall(as, writer);
        writer.write("\n");
        m.marshall(inputFiles, writer);
        writer.write("\n");
        m.marshall(softList, writer);
        writer.write("\n");
        m.marshall(dpList, writer);
        writer.write("\n");
        while (brIter.hasNext()) {
            BibliographicReference bibRef = brIter.next();
            m.marshall(bibRef, writer);
            writer.write("\n");
        }
        m.marshall(assayList, writer);
        writer.write("\n");
        m.marshall(svList, writer);
        writer.write("\n");
        m.marshall(protList, writer);
        writer.write("\n");
        while (pepConListIter.hasNext()) {
            PeptideConsensusList pepConList = pepConListIter.next();
            m.marshall(pepConList, writer);
            writer.write("\n");
        }
        while (ftListIter.hasNext()) {
            FeatureList ftList = ftListIter.next();
            m.marshall(ftList, writer);
            writer.write("\n");
        }
        writer.write(m.createMzQuantMLClosingTag());
    }
    finally {
        if (writer != null) {
            writer.close();
        }
    }
  }
}