Search in sources :

Example 1 with Sequence

use of eu.etaxonomy.cdm.model.molecular.Sequence in project cdmlib by cybertaxonomy.

the class AbcdGgbnImportTest method testImportGgbn.

/**
 * Tests import import of DNA unit and all its parameters
 * and sub derivatives (sequence, amplification, etc.)
 * @throws ParseException
 */
@Test
@DataSet(value = "/eu/etaxonomy/cdm/database/ClearDBDataSet.xml", loadStrategy = CleanSweepInsertLoadStrategy.class)
public void testImportGgbn() throws ParseException {
    String inputFile = "/eu/etaxonomy/cdm/io/specimen/abcd206/in/db6_without_association.xml";
    URL url = this.getClass().getResource(inputFile);
    assertNotNull("URL for the test file '" + inputFile + "' does not exist", url);
    Abcd206ImportConfigurator importConfigurator = null;
    try {
        importConfigurator = Abcd206ImportConfigurator.NewInstance(new URI(url), null, false);
    } catch (URISyntaxException e) {
        e.printStackTrace();
        Assert.fail();
    }
    assertNotNull("Configurator could not be created", importConfigurator);
    boolean result = defaultImport.invoke(importConfigurator).isSuccess();
    assertTrue("Return value for import.invoke should be true", result);
    assertEquals("Number of derived units is incorrect", 1, occurrenceService.count(DerivedUnit.class));
    assertEquals("Number of dna samples is incorrect", 1, occurrenceService.count(DnaSample.class));
    assertEquals("Number of field units is incorrect", 1, occurrenceService.count(FieldUnit.class));
    // dna sample
    FindOccurrencesConfigurator dnaConfig = new FindOccurrencesConfigurator();
    dnaConfig.setSignificantIdentifier("DB 6");
    List<SpecimenOrObservationBase> dnaRecords = occurrenceService.findByTitle(dnaConfig).getRecords();
    assertEquals(1, dnaRecords.size());
    SpecimenOrObservationBase dnaSpecimen = dnaRecords.iterator().next();
    assertEquals(DnaSample.class, dnaSpecimen.getClass());
    DnaSample dnaSample = (DnaSample) dnaSpecimen;
    DerivationEvent derivedFrom = dnaSample.getDerivedFrom();
    assertNotNull(derivedFrom);
    assertEquals("Wrong derivation type!", DerivationEventType.DNA_EXTRACTION(), derivedFrom.getType());
    assertEquals("Wrong number of originals", 1, derivedFrom.getOriginals().size());
    assertTrue(derivedFrom.getOriginals().iterator().next() instanceof FieldUnit);
    assertEquals("DNA Bank", dnaSample.getCollection().getCode());
    assertEquals(SpecimenOrObservationType.DnaSample, dnaSample.getRecordBasis());
    // preservation/preparation
    assertNotNull(derivedFrom.getActor());
    assertEquals("Bansemer, Jana", derivedFrom.getActor().getTitleCache());
    assertNotNull(derivedFrom.getTimeperiod());
    assertEquals((Integer) 2002, derivedFrom.getTimeperiod().getStartYear());
    assertEquals((Integer) 8, derivedFrom.getTimeperiod().getStartMonth());
    assertEquals((Integer) 13, derivedFrom.getTimeperiod().getStartDay());
    assertNotNull(dnaSample.getPreservation());
    assertEquals("DNeasy Plant Mini Spin Kit Qiagen", derivedFrom.getDescription());
    // sample designation
    Set<String> identifiers = dnaSample.getIdentifierStrings((DefinedTerm) termService.find(DefinedTerm.uuidSampleDesignation));
    assertNotNull(identifiers);
    assertEquals(1, identifiers.size());
    assertEquals("CAM010", identifiers.iterator().next());
    // dna quality
    DnaQuality dnaQuality = dnaSample.getDnaQuality();
    assertNotNull("Dna quality is null", dnaQuality != null);
    assertEquals(new Double("0.77"), dnaQuality.getRatioOfAbsorbance260_230());
    assertEquals(new Double("1.38"), dnaQuality.getRatioOfAbsorbance260_280());
    assertEquals(new DateTime(2008, 4, 15, 0, 0), dnaQuality.getQualityCheckDate());
    // assertEquals(MeasurementUnit.NewInstance(, label, labelAbbrev)DateTime(2008, 4, 15, 0, 0),dnaQuality.getQualityCheckDate());
    // amplifications
    Set<AmplificationResult> amplificationResults = dnaSample.getAmplificationResults();
    assertNotNull(amplificationResults);
    assertEquals(1, amplificationResults.size());
    AmplificationResult amplificationResult = amplificationResults.iterator().next();
    Amplification amplification = amplificationResult.getAmplification();
    assertNotNull("Amplification is null", amplification);
    DefinedTerm dnaMarker = amplification.getDnaMarker();
    assertNotNull(dnaMarker);
    assertEquals("ITS (ITS1, 5.8S rRNA, ITS2)", dnaMarker.getLabel());
    // amplification primers
    Primer forwardPrimer = amplification.getForwardPrimer();
    assertNotNull(forwardPrimer);
    assertEquals("PIpetB1411F", forwardPrimer.getLabel());
    assertEquals("5´-GCCGTMTTTATGTTAATGC-3´", forwardPrimer.getSequence().getString());
    assertNotNull(forwardPrimer.getPublishedIn());
    assertEquals("Löhne & Borsch 2005", forwardPrimer.getPublishedIn().getTitle());
    Primer reversePrimer = amplification.getReversePrimer();
    assertNotNull(reversePrimer);
    assertEquals("PIpetD738R", reversePrimer.getLabel());
    assertEquals("5´-AATTTAGCYCTTAATACAGG-3´", reversePrimer.getSequence().getString());
    // sequencing
    Set<Sequence> sequences = dnaSample.getSequences();
    assertNotNull(sequences);
    assertEquals(1, sequences.size());
    Sequence sequence = sequences.iterator().next();
    SequenceString consensusSequence = sequence.getConsensusSequence();
    assertNotNull(consensusSequence);
    assertEquals("TTTCGGGTCC TTTATAGTGA AGATATAGCA TAGATAGTTG TAATCCATTA" + " TGTATCATTG GGGAAGGAAG GAGAATATTT TTTTGATAGA ATACAAGTAT" + " GGATTATTGA AACTAATACG CCATGTATTT GGATATTTCC CTTGAACTGC" + " ATAATATTCT TTATTTTCCA TGAATAGTGT AAGGGAATTT TTCGAAGAGA" + " AAATGGATTA TGGGAGTGTG TGACTTGAGC TATTGATTGG TCTGTGCAGA" + " TACGGGCTTT TATCTATCTG CCACATTGTA ATTCACAAAC CAATGTGTCT" + " TTGTTCCAAC CATCGCGTAA GCCCCATACA GAAGATAGGC TGGTTCGCTT" + " GAAGAGAATC TTTTCTATGA TCAGATCCGA ATTATGTCGT ACATGAGCAG" + " GCTCCGTAAG ATCTAGTTGA CTTAAGTCAA ACTTCAATAG TATAAAAATG" + " CACTCATTTC CTCTGCATTG ACACGAGCTA TGAGACTATC GGAGTGAAAG" + " AAAGGGTCTA AAGAAGAAGA AAGCTTGGGC TAGATTAGTA ACAAGTAAAT" + " CCTTTGTGTG TGTGTTTGTA ATTAGTAAAT GGGCTCTCAA TATTTTGGGG" + " CTAATTACTG ATCCTAAGGT TTGAGACGAC CCAGAAAGCA CTTGATCATA" + " TCACGATTGA CTTTGTAAGC CTACTTGGGT ATTGAGTATT TACTTGTAAG" + " AACCGAATTC TTTGGGGGAT AGTTGCAAAA AGAATCCAGT CAATTGTTCT" + " TACGTAAAAC CATTCATATC TCGTATATGG ATATGTCTAG ATAGGCTATC" + " GATTTTCGAT GGATTCGTTT GGTTCTTTTG ATTATTGCTC GAGCTGGATG" + " ATGAAAAATT ATCATGTCCG GTTCCTTCG", consensusSequence.getString());
    // assertEquals((Integer)912, consensusSequence.getLength());
    assertNotNull(sequence.getContigFile());
    assertEquals(URI.create("http://ww2.biocase.org/websvn/filedetails.php?repname=campanula&path=%2FCAM385_Campa_drabifolia.pde"), MediaUtils.getFirstMediaRepresentationPart(sequence.getContigFile()).getUri());
    assertEquals(1, sequence.getCitations().size());
    Reference reference = sequence.getCitations().iterator().next();
    assertEquals("Gemeinholzer,B., Bachmann,K. (2005): Examining morphological " + "and molecular diagnostic character states in " + "Cichorium intybus L. (Asteraceae) and Cichorium spinosum L." + " Plant Systematics and Evolution 253 (1-3): 105-123.", reference.getTitle());
    // single reads
    Set<SingleRead> singleReads = sequence.getSingleReads();
    assertNotNull(singleReads);
    assertEquals(2, singleReads.size());
    for (SingleRead singleRead : singleReads) {
        if (singleRead.getDirection().equals(SequenceDirection.Forward)) {
            assertNotNull(singleRead.getPherogram());
            assertEquals(URI.create("http://ww2.biocase.org/websvn/filedetails.php?repname=campanula&path=%2FCAM385_GM312-petD_F.ab1"), MediaUtils.getFirstMediaRepresentationPart(singleRead.getPherogram()).getUri());
        } else {
            assertNotNull(singleRead.getPherogram());
            assertEquals(URI.create("http://ww2.biocase.org/websvn/filedetails.php?repname=campanula&path=%2FCAM385_GM312-petD_R.ab1"), MediaUtils.getFirstMediaRepresentationPart(singleRead.getPherogram()).getUri());
        }
    }
    assertNotNull(amplificationResult.getSingleReads());
    assertEquals(amplificationResult.getSingleReads(), singleReads);
}
Also used : Primer(eu.etaxonomy.cdm.model.molecular.Primer) SequenceString(eu.etaxonomy.cdm.model.molecular.SequenceString) URISyntaxException(java.net.URISyntaxException) URI(eu.etaxonomy.cdm.common.URI) DnaQuality(eu.etaxonomy.cdm.model.molecular.DnaQuality) URL(java.net.URL) DateTime(org.joda.time.DateTime) DerivedUnit(eu.etaxonomy.cdm.model.occurrence.DerivedUnit) DnaSample(eu.etaxonomy.cdm.model.molecular.DnaSample) AmplificationResult(eu.etaxonomy.cdm.model.molecular.AmplificationResult) SingleRead(eu.etaxonomy.cdm.model.molecular.SingleRead) SequenceString(eu.etaxonomy.cdm.model.molecular.SequenceString) FindOccurrencesConfigurator(eu.etaxonomy.cdm.api.service.config.FindOccurrencesConfigurator) FieldUnit(eu.etaxonomy.cdm.model.occurrence.FieldUnit) DerivationEvent(eu.etaxonomy.cdm.model.occurrence.DerivationEvent) Reference(eu.etaxonomy.cdm.model.reference.Reference) Sequence(eu.etaxonomy.cdm.model.molecular.Sequence) Amplification(eu.etaxonomy.cdm.model.molecular.Amplification) SpecimenOrObservationBase(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase) DefinedTerm(eu.etaxonomy.cdm.model.term.DefinedTerm) CdmTransactionalIntegrationTest(eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest) Test(org.junit.Test) DataSet(org.unitils.dbunit.annotation.DataSet)

Example 2 with Sequence

use of eu.etaxonomy.cdm.model.molecular.Sequence in project cdmlib by cybertaxonomy.

the class SequenceFormatter method initFormatKeys.

@Override
protected void initFormatKeys(Object object) {
    super.initFormatKeys(object);
    Sequence sequence = (Sequence) object;
    if (sequence.getDnaMarker() != null) {
        formatKeyMap.put(FormatKey.SEQUENCE_DNA_MARKER, sequence.getDnaMarker().getLabel());
    }
}
Also used : Sequence(eu.etaxonomy.cdm.model.molecular.Sequence)

Example 3 with Sequence

use of eu.etaxonomy.cdm.model.molecular.Sequence in project cdmlib by cybertaxonomy.

the class MolecularHibernateImplTest method createTestDataSet.

@Override
public void createTestDataSet() {
    DnaSample sample = DnaSample.NewInstance();
    Sequence sequence = Sequence.NewInstance("Meine Sequence");
    sequenceUuid = sequence.getUuid();
    sample.addSequence(sequence);
    uuidSample1 = sample.getUuid();
    DefinedTerm marker = DefinedTerm.ITS1_MARKER();
    Assert.assertNotNull("ITS1 marker must not be null", marker);
    sequence.setDnaMarker(marker);
    occurrenceDao.save(sample);
    PhylogeneticTree phyloTree = PhylogeneticTree.NewInstance();
    phyloTree.addUsedSequences(sequence);
    mediaDao.saveOrUpdate(phyloTree);
    phyloTreeUuid = phyloTree.getUuid();
    commitAndStartNewTransaction(new String[] { "SpecimenOrObservationBase" });
}
Also used : PhylogeneticTree(eu.etaxonomy.cdm.model.molecular.PhylogeneticTree) DnaSample(eu.etaxonomy.cdm.model.molecular.DnaSample) Sequence(eu.etaxonomy.cdm.model.molecular.Sequence) DefinedTerm(eu.etaxonomy.cdm.model.term.DefinedTerm)

Example 4 with Sequence

use of eu.etaxonomy.cdm.model.molecular.Sequence in project cdmlib by cybertaxonomy.

the class FullCoverageDataGenerator method createMolecular.

private void createMolecular(List<CdmBase> cdmBases) {
    DnaSample dnaSample = DnaSample.NewInstance();
    // Amplification
    Amplification amplification = Amplification.NewInstance();
    DefinedTerm dnaMarker = DefinedTerm.NewDnaMarkerInstance("My dna marker", "dna marker", null);
    cdmBases.add(dnaMarker);
    amplification.setDnaMarker(dnaMarker);
    Institution inst = Institution.NewInstance();
    amplification.setInstitution(inst);
    handleEventBase(amplification);
    handleAnnotatableEntity(amplification);
    Primer forwardPrimer = Primer.NewInstance("forward primer");
    forwardPrimer.setPublishedIn(getReference());
    forwardPrimer.setSequence(SequenceString.NewInstance("my sequence"));
    handleAnnotatableEntity(forwardPrimer);
    Primer reversePrimer = Primer.NewInstance("reverse primer");
    handleAnnotatableEntity(reversePrimer);
    amplification.setForwardPrimer(forwardPrimer);
    amplification.setReversePrimer(reversePrimer);
    DefinedTerm purificationMethod = DefinedTerm.NewInstance(TermType.MaterialOrMethod, "purification method", "purification method", null);
    cdmBases.add(purificationMethod);
    MaterialOrMethodEvent purification = MaterialOrMethodEvent.NewInstance(purificationMethod, "purification method");
    amplification.setPurification(purification);
    handleAnnotatableEntity(purification);
    handleAnnotatableEntity(purificationMethod);
    amplification.setLadderUsed("ladder");
    amplification.setElectrophoresisVoltage(5.5);
    amplification.setGelConcentration(2.4);
    amplification.setGelRunningTime(3.6);
    // Amplification result
    AmplificationResult amplificationResult = AmplificationResult.NewInstance(dnaSample, amplification);
    amplificationResult.setSuccessful(true);
    amplificationResult.setSuccessText("Very successful");
    handleAnnotatableEntity(amplificationResult);
    DefinedTerm cloningMethod = DefinedTerm.NewInstance(TermType.MaterialOrMethod, "cloning method", "cloning method", null);
    cdmBases.add(cloningMethod);
    Cloning cloning = Cloning.NewInstance(cloningMethod, "My cloning method", "my strain", forwardPrimer, reversePrimer);
    amplificationResult.setCloning(cloning);
    handleAnnotatableEntity(cloningMethod);
    handleAnnotatableEntity(cloning);
    Media gelPhoto = Media.NewInstance();
    amplificationResult.setGelPhoto(gelPhoto);
    // SingleRead
    SingleRead singleRead = SingleRead.NewInstance();
    handleAnnotatableEntity(singleRead);
    amplificationResult.addSingleRead(singleRead);
    MaterialOrMethodEvent readMethod = MaterialOrMethodEvent.NewInstance(null, "read method");
    singleRead.setMaterialOrMethod(readMethod);
    handleAnnotatableEntity(readMethod);
    Media pherogram = Media.NewInstance();
    singleRead.setPherogram(pherogram);
    singleRead.setPrimer(forwardPrimer);
    singleRead.setSequence(SequenceString.NewInstance("ABTC"));
    singleRead.setDirection(SequenceDirection.Forward);
    // Sequence
    Sequence sequence = Sequence.NewInstance("ADDT");
    dnaSample.addSequence(sequence);
    // SequenceString alignedSequence = SequenceString.NewInstance("AGTC");
    Shift[] shifts = new Shift[] { new Shift(66, 1), new Shift(103, -2) };
    SingleReadAlignment.NewInstance(sequence, singleRead, shifts, "AGTC");
    Media contigFile = Media.NewInstance();
    sequence.setContigFile(contigFile);
    sequence.setIsBarcode(true);
    sequence.setDnaMarker(dnaMarker);
    sequence.setBarcodeSequencePart(SequenceString.NewInstance("ADTA"));
    sequence.setGeneticAccessionNumber("GenNO12345");
    sequence.setBoldProcessId("boldId");
    sequence.setHaplotype("haplotype");
    Reference sequenceCitation = getReference();
    sequence.addCitation(sequenceCitation);
    handleAnnotatableEntity(sequence);
    // DnaQuality
    DnaQuality dnaQuality = DnaQuality.NewInstance();
    dnaQuality.setConcentration(2.0);
    MeasurementUnit mu = MeasurementUnit.NewInstance("mg/ml", "mg/ml", "mg/ml");
    cdmBases.add(mu);
    dnaQuality.setConcentrationUnit(mu);
    dnaQuality.setPurificationMethod("purification method");
    dnaQuality.setQualityCheckDate(DateTime.now());
    // TODO
    dnaQuality.setQualityTerm(null);
    dnaQuality.setRatioOfAbsorbance260_230(22.0);
    dnaQuality.setRatioOfAbsorbance260_280(3.9);
    dnaSample.setDnaQuality(dnaQuality);
    // Phylogenetic Tree
    PhylogeneticTree phyloTree = PhylogeneticTree.NewInstance();
    phyloTree.addUsedSequences(sequence);
    handleIdentifiableEntity(phyloTree);
    cdmBases.add(dnaSample);
    cdmBases.add(phyloTree);
}
Also used : Shift(eu.etaxonomy.cdm.model.molecular.SingleReadAlignment.Shift) MeasurementUnit(eu.etaxonomy.cdm.model.description.MeasurementUnit) PhylogeneticTree(eu.etaxonomy.cdm.model.molecular.PhylogeneticTree) MaterialOrMethodEvent(eu.etaxonomy.cdm.model.occurrence.MaterialOrMethodEvent) Cloning(eu.etaxonomy.cdm.model.molecular.Cloning) Reference(eu.etaxonomy.cdm.model.reference.Reference) IntextReference(eu.etaxonomy.cdm.model.common.IntextReference) Primer(eu.etaxonomy.cdm.model.molecular.Primer) Media(eu.etaxonomy.cdm.model.media.Media) Institution(eu.etaxonomy.cdm.model.agent.Institution) Sequence(eu.etaxonomy.cdm.model.molecular.Sequence) DnaQuality(eu.etaxonomy.cdm.model.molecular.DnaQuality) Amplification(eu.etaxonomy.cdm.model.molecular.Amplification) DnaSample(eu.etaxonomy.cdm.model.molecular.DnaSample) AmplificationResult(eu.etaxonomy.cdm.model.molecular.AmplificationResult) SingleRead(eu.etaxonomy.cdm.model.molecular.SingleRead) DefinedTerm(eu.etaxonomy.cdm.model.term.DefinedTerm)

Example 5 with Sequence

use of eu.etaxonomy.cdm.model.molecular.Sequence in project cdmlib by cybertaxonomy.

the class OccurrenceServiceDeepDeleteTest method createTestDataSet.

@Override
public // @Test
void createTestDataSet() throws FileNotFoundException {
    UUID sequenceA1Uuid = UUID.fromString("3db46d26-94ef-4759-aad8-42d0b9aea9b6");
    UUID sequenceA2Uuid = UUID.fromString("afa3771c-2b9d-46d7-82e0-8b9c050706e3");
    UUID sequenceB1Uuid = UUID.fromString("d7199db5-708e-470a-a573-9c760dd07cd1");
    UUID sequenceB2Uuid = UUID.fromString("1cb83575-38ea-4a8c-9418-d87163f425ce");
    UUID singleReadAUuid = UUID.fromString("82f538a1-2274-4d55-b27b-ed2f004ab5cd");
    UUID singleReadBUuid = UUID.fromString("fc74199a-89dc-40a0-9cbd-08cebebff4b5");
    // how the XML was generated
    Sequence sequenceA1 = Sequence.NewInstance("A");
    Sequence sequenceA2 = Sequence.NewInstance("T");
    Sequence sequenceB1 = Sequence.NewInstance("C");
    Sequence sequenceB2 = Sequence.NewInstance("G");
    SingleRead singleReadA = SingleRead.NewInstance();
    SingleRead singleReadB = SingleRead.NewInstance();
    sequenceA1.setUuid(sequenceA1Uuid);
    sequenceA2.setUuid(sequenceA2Uuid);
    sequenceB1.setUuid(sequenceB1Uuid);
    sequenceB1.setUuid(sequenceB2Uuid);
    singleReadA.setUuid(singleReadAUuid);
    singleReadB.setUuid(singleReadBUuid);
    SingleReadAlignment.NewInstance(sequenceA1, singleReadA);
    SingleReadAlignment.NewInstance(sequenceA2, singleReadA);
    SingleReadAlignment.NewInstance(sequenceB1, singleReadB);
    SingleReadAlignment.NewInstance(sequenceB2, singleReadB);
    sequenceService.save(sequenceA1);
    sequenceService.save(sequenceA2);
    sequenceService.save(sequenceB1);
    sequenceService.save(sequenceB2);
    commitAndStartNewTransaction(null);
    setComplete();
    endTransaction();
    try {
        writeDbUnitDataSetFile(new String[] { "SpecimenOrObservationBase", "SpecimenOrObservationBase_DerivationEvent", "DerivationEvent", "Sequence", "SingleRead", "SingleReadAlignment", "Amplification", "AmplificationResult", "DescriptionElementBase", "DescriptionBase", "TaxonBase", "TypeDesignationBase", "TaxonName", "TaxonName_TypeDesignationBase", "HomotypicalGroup" }, "testDeepDelete_SingleRead", true);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    System.out.println(sequenceA1.getUuid());
    System.out.println(sequenceA2.getUuid());
    System.out.println(sequenceB1.getUuid());
    System.out.println(sequenceB2.getUuid());
    System.out.println(singleReadA.getUuid());
    System.out.println(singleReadB.getUuid());
}
Also used : FileNotFoundException(java.io.FileNotFoundException) Sequence(eu.etaxonomy.cdm.model.molecular.Sequence) SingleRead(eu.etaxonomy.cdm.model.molecular.SingleRead) UUID(java.util.UUID)

Aggregations

Sequence (eu.etaxonomy.cdm.model.molecular.Sequence)21 SingleRead (eu.etaxonomy.cdm.model.molecular.SingleRead)11 DnaSample (eu.etaxonomy.cdm.model.molecular.DnaSample)9 CdmTransactionalIntegrationTest (eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest)7 Test (org.junit.Test)7 DerivedUnit (eu.etaxonomy.cdm.model.occurrence.DerivedUnit)6 DataSet (org.unitils.dbunit.annotation.DataSet)6 DefinedTerm (eu.etaxonomy.cdm.model.term.DefinedTerm)5 AmplificationResult (eu.etaxonomy.cdm.model.molecular.AmplificationResult)4 DerivationEvent (eu.etaxonomy.cdm.model.occurrence.DerivationEvent)4 Transactional (org.springframework.transaction.annotation.Transactional)4 SpecimenDeleteConfigurator (eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator)3 URI (eu.etaxonomy.cdm.common.URI)3 Media (eu.etaxonomy.cdm.model.media.Media)3 PhylogeneticTree (eu.etaxonomy.cdm.model.molecular.PhylogeneticTree)3 FieldUnit (eu.etaxonomy.cdm.model.occurrence.FieldUnit)3 SpecimenOrObservationBase (eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase)3 HashSet (java.util.HashSet)3 UUID (java.util.UUID)3 CdmBase (eu.etaxonomy.cdm.model.common.CdmBase)2