Search in sources :

Example 96 with Taxon

use of ubic.gemma.model.genome.Taxon in project Gemma by PavlidisLab.

the class ExpressionExperimentSetServiceImpl method createFromValueObject.

@Override
@Transactional
public ExpressionExperimentSet createFromValueObject(ExpressionExperimentSetValueObject eesvo) {
    /*
         * Sanity check.
         */
    Collection<ExpressionExperimentSet> dups = this.findByName(eesvo.getName());
    if (dups == null || !dups.isEmpty()) {
        throw new IllegalArgumentException("Sorry, there is already a set with that name (" + eesvo.getName() + ")");
    }
    ExpressionExperimentSet newSet = ExpressionExperimentSet.Factory.newInstance();
    newSet.setName(eesvo.getName());
    newSet.setDescription(eesvo.getDescription());
    Collection<? extends BioAssaySet> datasetsAnalyzed = expressionExperimentService.load(eesvo.getExpressionExperimentIds());
    newSet.getExperiments().addAll(datasetsAnalyzed);
    if (eesvo.getTaxonId() != null)
        newSet.setTaxon(taxonService.load(eesvo.getTaxonId()));
    else {
        /*
             * Figure out the taxon from the experiments. mustn't be heterogeneous.
             */
        Taxon taxon = null;
        for (BioAssaySet bioAssaySet : newSet.getExperiments()) {
            Taxon eeTaxon = this.getTaxonForSet(bioAssaySet);
            if (taxon == null) {
                taxon = eeTaxon;
            } else {
                assert eeTaxon != null;
                if (!eeTaxon.equals(taxon)) {
                    throw new UnsupportedOperationException("EESets with mixed taxa are not supported");
                }
            }
        }
        if (taxon == null) {
            throw new IllegalStateException("Could not determine taxon for new EEset");
        }
        newSet.setTaxon(taxon);
    }
    if (newSet.getTaxon() == null) {
        throw new IllegalArgumentException("Unable to determine the taxon for the EESet");
    }
    ExpressionExperimentSet newEESet = this.create(newSet);
    // make groups private by default
    if (eesvo.getIsPublic()) {
        securityService.makePublic(newEESet);
    } else {
        securityService.makePrivate(newEESet);
    }
    return newEESet;
}
Also used : BioAssaySet(ubic.gemma.model.expression.experiment.BioAssaySet) Taxon(ubic.gemma.model.genome.Taxon) ExpressionExperimentSet(ubic.gemma.model.analysis.expression.ExpressionExperimentSet) Transactional(org.springframework.transaction.annotation.Transactional)

Example 97 with Taxon

use of ubic.gemma.model.genome.Taxon in project Gemma by PavlidisLab.

the class ExpressionExperimentSetServiceImpl method updateDatabaseEntityMembers.

/**
 * update the members of the experiment set with the given ids
 *
 * @param groupId set to update
 * @param eeIds   new set member ids
 */
@Override
@Transactional
public void updateDatabaseEntityMembers(Long groupId, Collection<Long> eeIds) {
    if (eeIds.isEmpty()) {
        throw new IllegalArgumentException("No expression experiment ids provided. Cannot save an empty set.");
    }
    ExpressionExperimentSet eeSet = this.load(groupId);
    if (eeSet == null) {
        throw new IllegalArgumentException("No experiment set with id=" + groupId + " could be loaded. " + "Either it does not exist or you do not have permission to view it.");
    }
    // check that new member ids are valid
    Collection<ExpressionExperiment> newExperiments = expressionExperimentService.load(eeIds);
    if (newExperiments.isEmpty()) {
        throw new IllegalArgumentException("None of the experiment ids were valid (out of " + eeIds.size() + " provided)");
    }
    if (newExperiments.size() < eeIds.size()) {
        throw new IllegalArgumentException("Some of the experiment ids were invalid: only found " + newExperiments.size() + " out of " + eeIds.size() + " provided)");
    }
    assert newExperiments.size() == eeIds.size();
    Collection<BioAssaySet> basColl = new HashSet<>();
    for (ExpressionExperiment experiment : newExperiments) {
        Taxon eeTaxon = this.getTaxonForSet(experiment);
        // make sure experiments being added are from the right taxon
        if (eeTaxon == null || !eeTaxon.equals(eeSet.getTaxon())) {
            throw new IllegalArgumentException(experiment + " is of the wrong taxon to add to eeset. EESet taxon is " + eeSet.getTaxon());
        }
        basColl.add(experiment);
    }
    eeSet.getExperiments().clear();
    eeSet.getExperiments().addAll(basColl);
    this.update(eeSet);
}
Also used : BioAssaySet(ubic.gemma.model.expression.experiment.BioAssaySet) Taxon(ubic.gemma.model.genome.Taxon) ExpressionExperimentSet(ubic.gemma.model.analysis.expression.ExpressionExperimentSet) ExpressionExperiment(ubic.gemma.model.expression.experiment.ExpressionExperiment) HashSet(java.util.HashSet) Transactional(org.springframework.transaction.annotation.Transactional)

Example 98 with Taxon

use of ubic.gemma.model.genome.Taxon in project Gemma by PavlidisLab.

the class ExpressionExperimentSetServiceImpl method update.

/**
 * @see ExpressionExperimentSetService#update(ExpressionExperimentSet)
 */
@Override
@Transactional
public void update(final ExpressionExperimentSet expressionExperimentSet) {
    if (expressionExperimentSet == null) {
        throw new IllegalArgumentException("Cannot update null set");
    }
    if (expressionExperimentSet.getId() == null || expressionExperimentSet.getId() < 0) {
        throw new IllegalArgumentException("Can only update an existing eeset (passed id=" + expressionExperimentSet.getId() + ")");
    }
    if (StringUtils.isBlank(expressionExperimentSet.getName())) {
        throw new IllegalArgumentException("You must provide a name");
    }
    // make sure potentially new experiment members are of the right taxon
    Taxon groupTaxon = expressionExperimentSet.getTaxon();
    Taxon eeTaxon;
    for (BioAssaySet ee : expressionExperimentSet.getExperiments()) {
        eeTaxon = this.getTaxonForSet(ee);
        assert eeTaxon != null;
        if (!eeTaxon.equals(groupTaxon)) {
            throw new IllegalArgumentException("Failed to add experiments of wrong taxa (" + ee + ") to eeset. " + "EESet taxon is " + groupTaxon + ", experiment was " + eeTaxon);
        }
    }
    if (StringUtils.isBlank(expressionExperimentSet.getName())) {
        throw new IllegalArgumentException("Attempt to update an ExpressionExperimentSet so it has no name");
    }
    this.expressionExperimentSetDao.update(expressionExperimentSet);
}
Also used : BioAssaySet(ubic.gemma.model.expression.experiment.BioAssaySet) Taxon(ubic.gemma.model.genome.Taxon) Transactional(org.springframework.transaction.annotation.Transactional)

Example 99 with Taxon

use of ubic.gemma.model.genome.Taxon in project Gemma by PavlidisLab.

the class ChromosomeDaoImpl method findOrCreate.

@Override
public Chromosome findOrCreate(Chromosome entity) {
    String name = entity.getName();
    Taxon taxon = entity.getSequence().getTaxon();
    Collection<Chromosome> hits = this.find(name, taxon);
    if (hits == null || hits.isEmpty()) {
        Chromosome c = new Chromosome(name, taxon);
        return this.create(c);
    }
    return hits.iterator().next();
}
Also used : Taxon(ubic.gemma.model.genome.Taxon) Chromosome(ubic.gemma.model.genome.Chromosome)

Example 100 with Taxon

use of ubic.gemma.model.genome.Taxon in project Gemma by PavlidisLab.

the class TaxonDaoImpl method findOrCreate.

@Override
public Taxon findOrCreate(Taxon taxon) {
    Taxon existingTaxon = this.find(taxon);
    if (existingTaxon != null) {
        if (AbstractDao.log.isDebugEnabled())
            AbstractDao.log.debug("Found existing taxon: " + taxon);
        return existingTaxon;
    }
    if (StringUtils.isBlank(taxon.getCommonName()) && StringUtils.isBlank(taxon.getScientificName())) {
        throw new IllegalArgumentException("Cannot create a taxon without names: " + taxon);
    }
    AbstractDao.log.warn("Creating new taxon: " + taxon);
    return super.create(taxon);
}
Also used : Taxon(ubic.gemma.model.genome.Taxon)

Aggregations

Taxon (ubic.gemma.model.genome.Taxon)161 Gene (ubic.gemma.model.genome.Gene)34 Test (org.junit.Test)31 BaseSpringContextTest (ubic.gemma.core.testing.BaseSpringContextTest)29 HashSet (java.util.HashSet)23 ArrayDesign (ubic.gemma.model.expression.arrayDesign.ArrayDesign)23 InputStream (java.io.InputStream)17 Before (org.junit.Before)16 BioSequence (ubic.gemma.model.genome.biosequence.BioSequence)15 ExpressionExperiment (ubic.gemma.model.expression.experiment.ExpressionExperiment)14 CompositeSequence (ubic.gemma.model.expression.designElement.CompositeSequence)12 StopWatch (org.apache.commons.lang3.time.StopWatch)11 Transactional (org.springframework.transaction.annotation.Transactional)11 ArrayList (java.util.ArrayList)10 File (java.io.File)9 SimpleExpressionExperimentMetaData (ubic.gemma.core.loader.expression.simple.model.SimpleExpressionExperimentMetaData)9 Chromosome (ubic.gemma.model.genome.Chromosome)8 Collection (java.util.Collection)7 Element (org.w3c.dom.Element)7 PhysicalLocation (ubic.gemma.model.genome.PhysicalLocation)7