@Test public void testAvoidDuplicatedSamples() throws CatalogDBException { long studyId = user3.getProjects().get(0).getStudies().get(0).getUid(); Sample sample1 = catalogDBAdaptor.getCatalogSampleDBAdaptor().insert(studyId, new Sample().setId("sample1").setStatus(new Status()), QueryOptions.empty()).first(); Sample sample2 = catalogDBAdaptor.getCatalogSampleDBAdaptor().insert(studyId, new Sample().setId("sample2").setStatus(new Status()), QueryOptions.empty()).first(); Individual individual = new Individual() .setName("in2") .setStatus(new Status()) .setSamples(Arrays.asList(sample1, sample1, sample2, new Sample().setUid(-1).setStatus(new Status()))); Individual individualStored = catalogIndividualDBAdaptor.insert(studyId, individual, null).first(); assertEquals(2, individualStored.getSamples().size()); assertTrue(individualStored.getSamples().stream().map(Sample::getUid).collect(Collectors.toSet()).containsAll(Arrays.asList( sample1.getUid(), sample2.getUid()))); // Update samples ObjectMap params = new ObjectMap(IndividualDBAdaptor.QueryParams.SAMPLES.key(), individual.getSamples()); Individual update = catalogIndividualDBAdaptor.update(individualStored.getUid(), params, QueryOptions.empty()).first(); assertEquals(2, update.getSamples().size()); assertTrue(update.getSamples().stream().map(Sample::getUid).collect(Collectors.toSet()).containsAll(Arrays.asList(sample1.getUid(), sample2.getUid()))); }
@Test public void testAddSamples() throws Exception { long studyUid = user3.getProjects().get(0).getStudies().get(0).getUid(); Sample sample1 = catalogDBAdaptor.getCatalogSampleDBAdaptor().insert(studyUid, new Sample().setId("sample1").setStatus(new Status()), QueryOptions.empty()).first(); Sample sample2 = catalogDBAdaptor.getCatalogSampleDBAdaptor().insert(studyUid, new Sample().setId("sample2").setStatus(new Status()), QueryOptions.empty()).first(); File file = user3.getProjects().get(0).getStudies().get(0).getFiles().get(0); catalogFileDBAdaptor.addSamplesToFile(file.getUid(), Arrays.asList(sample1, sample2)); QueryResult<File> fileQueryResult = catalogFileDBAdaptor.get(file.getUid(), QueryOptions.empty()); assertEquals(2, fileQueryResult.first().getSamples().size()); assertTrue(Arrays.asList(sample1.getUid(), sample2.getUid()).containsAll( fileQueryResult.first().getSamples().stream().map(Sample::getUid).collect(Collectors.toList()))); Sample sample3 = catalogDBAdaptor.getCatalogSampleDBAdaptor().insert(studyUid, new Sample().setId("sample3").setStatus(new Status()), QueryOptions.empty()).first(); // Test we avoid duplicities catalogFileDBAdaptor.addSamplesToFile(file.getUid(), Arrays.asList(sample1, sample2, sample2, sample3)); fileQueryResult = catalogFileDBAdaptor.get(file.getUid(), QueryOptions.empty()); assertEquals(3, fileQueryResult.first().getSamples().size()); assertTrue(Arrays.asList(sample1.getUid(), sample2.getUid(), sample3.getUid()).containsAll( fileQueryResult.first().getSamples().stream().map(Sample::getUid).collect(Collectors.toList()))); }
@Test public void testRemoveSamples() throws Exception { long studyUid = user3.getProjects().get(0).getStudies().get(0).getUid(); Sample sample1 = catalogDBAdaptor.getCatalogSampleDBAdaptor().insert(studyUid, new Sample().setId("sample1").setStatus(new Status()), QueryOptions.empty()).first(); Sample sample2 = catalogDBAdaptor.getCatalogSampleDBAdaptor().insert(studyUid, new Sample().setId("sample2").setStatus(new Status()), QueryOptions.empty()).first(); Sample sample3 = catalogDBAdaptor.getCatalogSampleDBAdaptor().insert(studyUid, new Sample().setId("sample3").setStatus(new Status()), QueryOptions.empty()).first(); File file = user3.getProjects().get(0).getStudies().get(0).getFiles().get(0); catalogFileDBAdaptor.addSamplesToFile(file.getUid(), Arrays.asList(sample1, sample2, sample3)); QueryResult<File> fileQueryResult = catalogFileDBAdaptor.get(file.getUid(), QueryOptions.empty()); assertEquals(3, fileQueryResult.first().getSamples().size()); assertTrue(Arrays.asList(sample1.getUid(), sample2.getUid(), sample3.getUid()) .containsAll(fileQueryResult.first().getSamples().stream().map(Sample::getUid).collect(Collectors.toList()))); catalogFileDBAdaptor.extractSampleFromFiles(new Query(FileDBAdaptor.QueryParams.UID.key(), file.getUid()), Arrays.asList(sample1.getUid(), sample3.getUid())); fileQueryResult = catalogFileDBAdaptor.get(file.getUid(), QueryOptions.empty()); assertEquals(1, fileQueryResult.first().getSamples().size()); assertTrue(fileQueryResult.first().getSamples().get(0).getUid() == sample2.getUid()); }
sample.setUid(500).setSource("Lab").setRelease(3).setVersion(2).setStatus(new Status("READY")) .setType("Sample").setSomatic(true).setCreationDate(TimeUtils.getTime()) .setAnnotationSets(AnnotationHelper.createAnnotation());
sample.setStats(ParamUtils.defaultObject(sample.getStats(), Collections.emptyMap())); sample.setAttributes(ParamUtils.defaultObject(sample.getAttributes(), Collections.emptyMap())); sample.setStatus(new Status()); sample.setCreationDate(TimeUtils.getTime()); sample.setVersion(1);
@Test public void getSampleWithIndividual() throws CatalogDBException { long studyId = user3.getProjects().get(0).getStudies().get(0).getUid(); QueryOptions queryOptions = new QueryOptions(); // We create a new sample with the individual Sample sample = new Sample().setId("sample1").setStatus(new Status()); QueryResult<Sample> sampleQR = catalogSampleDBAdaptor.insert(studyId, sample, queryOptions); long sampleId = sampleQR.first().getUid(); // We create an individual String individualName = "individualName"; Individual individual = new Individual() .setId(individualName) .setStatus(new Status()) .setSamples(Arrays.asList(new Sample().setUid(sampleId).setVersion(1).setStatus(new Status()))); dbAdaptorFactory.getCatalogIndividualDBAdaptor().insert(studyId, individual, queryOptions); // Get the sample Query query = new Query() .append(SampleDBAdaptor.QueryParams.STUDY_UID.key(), studyId) .append(SampleDBAdaptor.QueryParams.INDIVIDUAL.key(), "individualName"); QueryResult<Sample> individualQuery = catalogSampleDBAdaptor.get(query, queryOptions); assertEquals("sample1", individualQuery.first().getId()); query = new Query() .append(SampleDBAdaptor.QueryParams.STUDY_UID.key(), studyId) .append(SampleDBAdaptor.QueryParams.INDIVIDUAL.key(), "non-existing"); QueryResult<Sample> inexistentIndividualQuery = catalogSampleDBAdaptor.get(query, queryOptions); assertEquals(0, inexistentIndividualQuery.getNumResults()); }
new Phenotype("go:123", "My go term", "go", Phenotype.Status.UNKNOWN) ); Sample sample1 = new Sample().setId("sample1").setPhenotypes(ontologyList).setStatus(new Status()); new Phenotype("go:yyy", "My go term", "go", Phenotype.Status.UNKNOWN) ); Sample sample2 = new Sample().setId("sample2").setPhenotypes(ontologyList).setStatus(new Status());