/* * #%L * gitools-core * %% * Copyright (C) 2013 Universitat Pompeu Fabra - Biomedical Genomics group * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ package org.gitools.analysis.groupcomparison; import org.gitools.analysis.Analysis; import org.gitools.analysis.ToolConfig; import org.gitools.analysis.groupcomparison.dimensiongroups.DimensionGroup; import org.gitools.analysis.groupcomparison.dimensiongroups.DimensionGroupEnum; import org.gitools.analysis.stats.test.EnrichmentTest; import org.gitools.analysis.stats.test.factory.TestFactory; import org.gitools.api.matrix.IKey; import org.gitools.api.matrix.IMatrix; import org.gitools.api.matrix.Key; import org.gitools.api.resource.ResourceReference; import org.gitools.api.resource.adapter.ResourceReferenceXmlAdapter; import javax.xml.bind.annotation.*; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import java.io.Serializable; import java.util.ArrayList; import java.util.List; @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement public class GroupComparisonAnalysis extends Analysis implements Serializable { @XmlTransient public static IKey<GroupComparisonAnalysis> CACHE_KEY_GC_ANALYSIS = new Key<>(); private String sizeAttrName; private String pvalueAttrName; private boolean transposeData; private String layerName; private DimensionGroupEnum columnGrouping = null; protected String dataFile = ""; @XmlTransient private DimensionGroupEnum columnGroupType; @XmlTransient private boolean copyAnnotation = false; @XmlElementWrapper() @XmlElement(name = "group") private List<DimensionGroup> groups; private ToolConfig testConfig; private String mtc; @XmlJavaTypeAdapter(ResourceReferenceXmlAdapter.class) private ResourceReference<? extends IMatrix> data; @XmlJavaTypeAdapter(ResourceReferenceXmlAdapter.class) private ResourceReference<? extends IMatrix> results; private Double nullConversion; public String getMtc() { return mtc; } public void setMtc(String mtc) { this.mtc = mtc; } public void setToolConfig(ToolConfig testConfig) { this.testConfig = testConfig; } public EnrichmentTest getTest() { TestFactory tf = TestFactory.createFactory(testConfig); return tf.create(); } public GroupComparisonAnalysis() { this.transposeData = false; this.nullConversion = Double.NaN; this.groups = new ArrayList<>(); } public String getSizeAttrName() { return sizeAttrName; } public void setLayer(String layerName) { this.layerName = layerName; } public String getLayerName() { return layerName; } public void setSizeAttrName(String sizeAttrName) { this.sizeAttrName = sizeAttrName; } public String getPvalueAttrName() { return pvalueAttrName; } public void setPvalueAttrName(String pvalueAttrName) { this.pvalueAttrName = pvalueAttrName; } public boolean isTransposeData() { return transposeData; } public void setTransposeData(boolean transposeData) { this.transposeData = transposeData; } public DimensionGroupEnum getColumnGrouping() { return columnGrouping; } public void setColumnGrouping(DimensionGroupEnum columnGrouping) { this.columnGrouping = columnGrouping; } public DimensionGroup getGroup(int index) { return groups.get(index); } public List<DimensionGroup> getGroups() { return groups; } public void setGroup(DimensionGroup group, int index) { this.groups.set(index, group); } public void addGroups(List<DimensionGroup> groups) { for (DimensionGroup g : groups) { this.groups.add(g); } } public ResourceReference<? extends IMatrix> getData() { return data; } public void setData(ResourceReference<IMatrix> data) { this.data = data; } public ResourceReference<? extends IMatrix> getResults() { return results; } public void setResults(ResourceReference<? extends IMatrix> results) { this.results = results; } public Double getNullConversion() { return nullConversion; } public void setNullConversion(Double nullConversion) { this.nullConversion = nullConversion; } public DimensionGroupEnum getColumnGroupType() { return columnGroupType; } public void setColumnGroupType(DimensionGroupEnum columnGroupType) { this.columnGroupType = columnGroupType; } public boolean isCopyAnnotation() { return copyAnnotation; } public void setCopyAnnotation(boolean copyAnnotation) { this.copyAnnotation = copyAnnotation; } }