/* * Copyright (c) 2003-2012 Fred Hutchinson Cancer Research Center * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.fhcrc.cpl.toolbox.proteomics.filehandler; import org.fhcrc.cpl.toolbox.filehandler.SimpleXMLStreamReader; import javax.xml.stream.XMLStreamException; import java.util.List; import java.util.ArrayList; import java.util.Collections; /** * User: jeckels * Date: Feb 22, 2006 */ public class ProteinGroup { private int _rowId; private int _groupId; private float _probability; private int _proteinProphetFileId; private int _indistinguishableCollectionId; private Float _errorRate; private SimpleXMLStreamReader _parser; private List<ProtXmlReader.Protein> _proteins = new ArrayList<ProtXmlReader.Protein>(); private float _pctSpectrumIds; private int _uniquePeptidesCount; private Float _percentCoverage; private int _totalNumberPeptides; private Float _proteinProbability; public static ProteinGroup getProteinGroup(SimpleXMLStreamReader parser) throws XMLStreamException { while (parser.hasNext()) { if (!parser.skipToStart("protein_group")) { return null; } if (parser.hasNext()) { ProteinGroup group = new ProteinGroup(); String groupNumberString = parser.getAttributeValue(null, "group_number"); String probabilityString = parser.getAttributeValue(null, "probability"); if (groupNumberString != null && !"".equals(groupNumberString) && probabilityString != null && !"".equals(probabilityString)) { group.setGroupNumber(Integer.parseInt(groupNumberString)); group.setProbability(Float.parseFloat(probabilityString)); group.setParser(parser); return group; } } } return null; } public void setParser(SimpleXMLStreamReader parser) { _parser = parser; } public int getGroupNumber() { return _groupId; } public void setGroupNumber(int groupNumber) { _groupId = groupNumber; } public float getProbability() { return _probability; } public void setProbability(float probability) { _probability = probability; } public float getGroupProbability() { return _probability; } public void setGroupProbability(float probability) { _probability = probability; } public List<ProtXmlReader.Protein> getProteins() throws XMLStreamException { if (!_proteins.isEmpty()) return _proteins; if (_parser == null) return Collections.emptyList(); while (_parser.hasNext() && !(_parser.isEndElement() && "protein_group".equals(_parser.getLocalName()))) { _parser.next(); if (_parser.isStartElement() && "protein".equals(_parser.getLocalName())) { ProtXmlReader.Protein p = new ProtXmlReader.Protein(_parser); _proteins.add(p); } } return _proteins; } public String toString() { return _groupId + " " + _probability; } public int getRowId() { return _rowId; } public void setRowId(int rowId) { _rowId = rowId; } public int getProteinProphetFileId() { return _proteinProphetFileId; } public void setProteinProphetFileId(int proteinProphetFileId) { _proteinProphetFileId = proteinProphetFileId; } public int getIndistinguishableCollectionId() { return _indistinguishableCollectionId; } public void setIndistinguishableCollectionId(int indistinguishableCollectionId) { _indistinguishableCollectionId = indistinguishableCollectionId; } public void setPctSpectrumIds(float pctSpectrumIds) { _pctSpectrumIds = pctSpectrumIds; } public float getPctSpectrumIds() { return _pctSpectrumIds; } public void setUniquePeptidesCount(int uniquePeptidesCount) { _uniquePeptidesCount = uniquePeptidesCount; } public void setTotalNumberPeptides(int totalNumberPeptides) { _totalNumberPeptides = totalNumberPeptides; } public void setPercentCoverage(Float percentCoverage) { _percentCoverage = percentCoverage; } public int getUniquePeptidesCount() { return _uniquePeptidesCount; } public Float getPercentCoverage() { return _percentCoverage; } public int getTotalNumberPeptides() { return _totalNumberPeptides; } public void setProteinProbability(Float proteinProbability) { _proteinProbability = proteinProbability; } public Float getProteinProbability() { return _proteinProbability; } public Float getErrorRate() { return _errorRate; } public void setErrorRate(Float errorRate) { _errorRate = errorRate; } }