package com.compomics.util.experiment; import com.compomics.util.experiment.biology.Sample; import com.compomics.util.experiment.personalization.ExperimentObject; import java.util.HashMap; import java.util.ArrayList; /** * A sample measurement set is a set of replicates from a common sample. * * @author Marc Vaudel */ public class SampleAnalysisSet extends ExperimentObject { /** * The version UID for Serialization/Deserialization compatibility. */ static final long serialVersionUID = -5399187779025810060L; /** * The reference sample. */ private Sample sample; /** * The various analysis indexed by replicates indexes. */ private HashMap<Integer, ProteomicAnalysis> analysis = new HashMap<Integer, ProteomicAnalysis>(); /** * Contructor for an analysis of a sample without replicates. * * @param referenceSample the reference sample * @param replicate the analysis for this sample */ public SampleAnalysisSet(Sample referenceSample, ProteomicAnalysis replicate) { this.sample = referenceSample; analysis.put(replicate.getIndex(), replicate); } /** * Contructor for a set of analysis of a sample. * * @param referenceSample the reference sample * @param replicates the set of replicates for this sample */ public SampleAnalysisSet(Sample referenceSample, ArrayList<ProteomicAnalysis> replicates) { this.sample = referenceSample; for (ProteomicAnalysis replicate : replicates) { analysis.put(replicate.getIndex(), replicate); } } /** * Returns the analysis corresponding to the selected replicate. * * @param replicateNumber index of the replicate analyzed * @return the proteomic analysis of the replicate */ public ProteomicAnalysis getProteomicAnalysis(int replicateNumber) { return analysis.get(replicateNumber); } /** * Returns a list containing replicate numbers. * * @return a list containing replicate numbers */ public ArrayList<Integer> getReplicateNumberList() { return new ArrayList<Integer>(analysis.keySet()); } }