Skip to content
Snippets Groups Projects
Commit b100896d authored by felmer's avatar felmer
Browse files

SE-126, SE-127 bugs fixed

SVN: 12303
parent ea0bde2d
No related branches found
No related tags found
No related merge requests found
...@@ -38,10 +38,16 @@ class AbundanceHandler extends AbstractHandler ...@@ -38,10 +38,16 @@ class AbundanceHandler extends AbstractHandler
{ {
@Private static final String MZXML_FILENAME = "MZXML_FILENAME"; @Private static final String MZXML_FILENAME = "MZXML_FILENAME";
private static final class SampleOrError
{
Sample sample;
String error;
}
private final IEncapsulatedOpenBISService openbisService; private final IEncapsulatedOpenBISService openbisService;
private final GroupIdentifier groupIdentifier; private final GroupIdentifier groupIdentifier;
private final Experiment experiment; private final Experiment experiment;
private final Map<String, Sample> samples = new HashMap<String, Sample>(); private final Map<String, SampleOrError> samplesOrErrors = new HashMap<String, SampleOrError>();
AbundanceHandler(IEncapsulatedOpenBISService openbisService, IProtDAO dao, AbundanceHandler(IEncapsulatedOpenBISService openbisService, IProtDAO dao,
GroupIdentifier groupIdentifier, Experiment experiment) GroupIdentifier groupIdentifier, Experiment experiment)
...@@ -68,16 +74,16 @@ class AbundanceHandler extends AbstractHandler ...@@ -68,16 +74,16 @@ class AbundanceHandler extends AbstractHandler
private Sample getOrCreateSample(String parameterName, String proteinName) private Sample getOrCreateSample(String parameterName, String proteinName)
{ {
Sample sample = samples.get(parameterName); SampleOrError sampleOrError = samplesOrErrors.get(parameterName);
if (sample == null) if (sampleOrError == null)
{ {
SampleIdentifier sampleIdentifier = SampleIdentifier sampleIdentifier =
new SampleIdentifier(groupIdentifier, parameterName); new SampleIdentifier(groupIdentifier, parameterName);
SamplePE samplePE = openbisService.tryGetSampleWithExperiment(sampleIdentifier); SamplePE samplePE = openbisService.tryGetSampleWithExperiment(sampleIdentifier);
String permID; sampleOrError = new SampleOrError();
if (samplePE != null) if (samplePE != null)
{ {
permID = samplePE.getPermId(); sampleOrError.sample = getOrCreateSample(experiment, samplePE.getPermId());
} else } else
{ {
List<ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample> list = List<ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample> list =
...@@ -87,21 +93,22 @@ class AbundanceHandler extends AbstractHandler ...@@ -87,21 +93,22 @@ class AbundanceHandler extends AbstractHandler
.getGroupCode(), null)); .getGroupCode(), null));
if (list == null || list.size() == 0) if (list == null || list.size() == 0)
{ {
throw new UserFailureException("Protein '" + proteinName sampleOrError.error = "an unidentified sample: " + parameterName;
+ "' has an abundance value for an unidentified samples: " } else if (list.size() > 1)
+ parameterName);
}
if (list.size() > 1)
{ {
throw new UserFailureException("Protein '" + proteinName sampleOrError.error = list.size() + " samples are found: " + parameterName;
+ "' has an abundance value for which " + list.size() } else
+ " samples are found: " + parameterName); {
sampleOrError.sample = getOrCreateSample(experiment, list.get(0).getPermId());
} }
permID = list.get(0).getPermId();
} }
sample = getOrCreateSample(experiment, permID); samplesOrErrors.put(parameterName, sampleOrError);
samples.put(parameterName, sample); }
if (sampleOrError.error != null)
{
throw new UserFailureException("Protein '" + proteinName
+ "' has an abundance value for " + sampleOrError.error);
} }
return sample; return sampleOrError.sample;
} }
} }
...@@ -18,7 +18,6 @@ package ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.applicatio ...@@ -18,7 +18,6 @@ package ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.applicatio
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set; import java.util.Set;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
...@@ -27,7 +26,6 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewConte ...@@ -27,7 +26,6 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewConte
import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DispatcherHelper; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DispatcherHelper;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.LinkRenderer; import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.LinkRenderer;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.AbstractColumnDefinition;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.IColumnDefinitionKind; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.IColumnDefinitionKind;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.IColumnDefinitionUI; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.IColumnDefinitionUI;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractSimpleBrowserGrid; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractSimpleBrowserGrid;
...@@ -42,6 +40,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; ...@@ -42,6 +40,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind;
import ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.IPhosphoNetXClientServiceAsync; import ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.IPhosphoNetXClientServiceAsync;
import ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.application.columns.InternalAbundanceColumnDefinition;
import ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.application.columns.ProteinColDefKind; import ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.application.columns.ProteinColDefKind;
import ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.dto.AggregateFunction; import ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.dto.AggregateFunction;
import ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.dto.ListProteinByExperimentCriteria; import ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.dto.ListProteinByExperimentCriteria;
...@@ -134,29 +133,7 @@ class ProteinByExperimentBrowserGrid extends AbstractSimpleBrowserGrid<ProteinIn ...@@ -134,29 +133,7 @@ class ProteinByExperimentBrowserGrid extends AbstractSimpleBrowserGrid<ProteinIn
} }
} }
final long sampleID = definition.getSampleID(); final long sampleID = definition.getSampleID();
columns.add(new AbstractColumnDefinition<ProteinInfo>(header, 100, false) columns.add(new InternalAbundanceColumnDefinition(header, 100, false, sampleID));
{
@Override
protected String tryGetValue(ProteinInfo entity)
{
Map<Long, Double> abundances = entity.getAbundances();
if (abundances == null)
{
return null;
}
Double abundance = abundances.get(sampleID);
if (abundance == null)
{
return null;
}
return Double.toString(abundance);
}
public String getIdentifier()
{
return "abundance-" + Long.toString(sampleID);
}
});
} }
definitions.addColumns(columns); definitions.addColumns(columns);
definitions.setGridCellRendererFor(ProteinColDefKind.UNIPROT_ID.id(), LinkRenderer definitions.setGridCellRendererFor(ProteinColDefKind.UNIPROT_ID.id(), LinkRenderer
......
/*
* Copyright 2009 ETH Zuerich, CISD
*
* 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 ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.application.columns;
import java.util.Map;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.AbstractColumnDefinition;
import ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.dto.ProteinInfo;
public final class InternalAbundanceColumnDefinition extends
AbstractColumnDefinition<ProteinInfo>
{
private long sampleID;
// GWT only
public InternalAbundanceColumnDefinition()
{
super();
}
public InternalAbundanceColumnDefinition(String headerTextOrNull, int width,
boolean isHidden, long sampleID)
{
super(headerTextOrNull, width, isHidden);
this.sampleID = sampleID;
}
@Override
protected String tryGetValue(ProteinInfo entity)
{
Map<Long, Double> abundances = entity.getAbundances();
if (abundances == null)
{
return null;
}
Double abundance = abundances.get(sampleID);
if (abundance == null)
{
return null;
}
return Double.toString(abundance);
}
public String getIdentifier()
{
return "abundance-" + Long.toString(sampleID);
}
}
\ No newline at end of file
...@@ -40,7 +40,7 @@ public interface IProteinQueryDAO extends BaseQuery ...@@ -40,7 +40,7 @@ public interface IProteinQueryDAO extends BaseQuery
public DataSet<ProbabilityFDRMapping> getProbabilityFDRMapping(long dataSetID); public DataSet<ProbabilityFDRMapping> getProbabilityFDRMapping(long dataSetID);
@Select("select pr.id, pr.uniprot_id, pr.description, d.id as data_set_id, p.probability, " @Select("select pr.id, pr.uniprot_id, pr.description, d.id as data_set_id, p.probability, "
+ " a.value, samples.id as sample_id " + " a.value as abundance, samples.id as sample_id "
+ "from identified_proteins as ip left join proteins as p on ip.prot_id = p.id " + "from identified_proteins as ip left join proteins as p on ip.prot_id = p.id "
+ "left join data_sets as d on p.dase_id = d.id " + "left join data_sets as d on p.dase_id = d.id "
+ "left join experiments as e on d.expe_id = e.id " + "left join experiments as e on d.expe_id = e.id "
......
...@@ -31,8 +31,8 @@ public class ProteinReferenceWithProbability extends ProteinReference ...@@ -31,8 +31,8 @@ public class ProteinReferenceWithProbability extends ProteinReference
@ResultColumn("probability") @ResultColumn("probability")
private double probability; private double probability;
@ResultColumn("value") @ResultColumn("abundance")
private double abundance; private Double abundance;
@ResultColumn("sample_id") @ResultColumn("sample_id")
private Long sampleID; private Long sampleID;
...@@ -57,12 +57,12 @@ public class ProteinReferenceWithProbability extends ProteinReference ...@@ -57,12 +57,12 @@ public class ProteinReferenceWithProbability extends ProteinReference
this.probability = probability; this.probability = probability;
} }
public final double getAbundance() public final Double getAbundance()
{ {
return abundance; return abundance;
} }
public final void setAbundance(double abundance) public final void setAbundance(Double abundance)
{ {
this.abundance = abundance; this.abundance = abundance;
} }
......
...@@ -338,7 +338,7 @@ public class ResultDataSetUploaderTest extends AssertJUnit ...@@ -338,7 +338,7 @@ public class ResultDataSetUploaderTest extends AssertJUnit
} catch (UserFailureException ex) } catch (UserFailureException ex)
{ {
AssertionUtil.assertContains("Protein '" + PROTEIN_NAME1 AssertionUtil.assertContains("Protein '" + PROTEIN_NAME1
+ "' has an abundance value for an unidentified samples: " + "' has an abundance value for an unidentified sample: "
+ upperCaseParameterName, ex.getMessage()); + upperCaseParameterName, ex.getMessage());
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment