@Deprecated public QueryResult<Sample> create(String studyStr, String name, String source, String description, String type, boolean somatic, Individual individual, Map<String, Object> stats, Map<String, Object> attributes, QueryOptions options, String sessionId) throws CatalogException { Sample sample = new Sample(name, source, individual, null, null, -1, 1, description, type, somatic, Collections.emptyList(), Collections.emptyList(), attributes).setStats(stats); return create(studyStr, sample, options, sessionId); }
@Test public void testCreateCohortFail() throws CatalogException { thrown.expect(CatalogException.class); List<Sample> sampleList = Arrays.asList(new Sample().setUid(23L), new Sample().setUid(4L), new Sample().setUid(5L)); catalogManager.getCohortManager().create(studyFqn, new Cohort().setId("MyCohort").setType(Study.Type.FAMILY).setSamples(sampleList), null, sessionIdUser); }
@Before public void before() throws IOException, CatalogException { MongoDBAdaptorTest dbAdaptorTest = new MongoDBAdaptorTest(); dbAdaptorTest.before(); user1 = MongoDBAdaptorTest.user1; user2 = MongoDBAdaptorTest.user2; user3 = MongoDBAdaptorTest.user3; user4 = MongoDBAdaptorTest.user4; dbAdaptorFactory = MongoDBAdaptorTest.catalogDBAdaptor; catalogSampleDBAdaptor = dbAdaptorFactory.getCatalogSampleDBAdaptor(); studyId = user3.getProjects().get(0).getStudies().get(0).getUid(); s1 = catalogSampleDBAdaptor.insert(studyId, new Sample("s1", "", new Individual(), null, null, 1, 1, "", "", false, Collections.emptyList(), new ArrayList<>(), Collections.emptyMap()), null).first(); s2 = catalogSampleDBAdaptor.insert(studyId, new Sample("s2", "", new Individual(), null, null, 1, 1, "", "", false, Collections.emptyList(), new ArrayList<>(), Collections.emptyMap()), null).first(); }
@Test public void testGetMetadataFromVcfWithSomeExistingSamples() throws CatalogException, FileNotFoundException { catalogManager.getSampleManager().create(study.getFqn(), new Sample().setId(expectedSampleNames.get(2)), new QueryOptions(), sessionIdUser); catalogManager.getSampleManager().create(study.getFqn(), new Sample().setId(expectedSampleNames.get(0)), new QueryOptions(), sessionIdUser); testGetMetadataFromVcf(); }
@Test public void testAssignPermissionsWithPropagationAndNoIndividual() throws CatalogException { Sample sample = new Sample().setId("sample"); catalogManager.getSampleManager().create(studyFqn, sample, QueryOptions.empty(), sessionIdUser); List<QueryResult<SampleAclEntry>> queryResults = catalogManager.getSampleManager().updateAcl(studyFqn, Arrays.asList("sample"), "user2", new Sample.SampleAclParams("VIEW", AclParams.Action.SET, null, null, null, true), sessionIdUser); assertEquals(1, queryResults.size()); assertEquals(1, queryResults.get(0).getNumResults()); assertEquals(1, queryResults.get(0).first().getPermissions().size()); assertTrue(queryResults.get(0).first().getPermissions().contains(SampleAclEntry.SamplePermissions.VIEW)); }
@Test public void testCreateSample() throws CatalogException { QueryResult<Sample> sampleQueryResult = catalogManager.getSampleManager().create(studyFqn, new Sample().setId("HG007"), null, sessionIdUser); assertEquals(1, sampleQueryResult.getNumResults()); }
@Test public void testCreateSampleWithDotInName() throws CatalogException { String name = "HG007.sample"; QueryResult<Sample> sampleQueryResult = catalogManager.getSampleManager().create(studyFqn, new Sample().setId(name), null, sessionIdUser); assertEquals(name, sampleQueryResult.first().getId()); }
@Test @Ignore // TODO: This should be tested in the sample manager, not here !!! public void deleteSampleFail3Test() throws Exception { long studyId = user3.getProjects().get(0).getStudies().get(0).getUid(); Sample hg0097 = new Sample("HG0097", "1000g", new Individual(), "A description", 1); QueryResult<Sample> createResult = dbAdaptorFactory.getCatalogSampleDBAdaptor().insert(studyId, hg0097, null); dbAdaptorFactory.getCatalogCohortDBAdaptor().insert(studyId, new Cohort("Cohort", Study.Type.COLLECTION, "", "", Collections.singletonList(createResult.first()), 1, null), null); thrown.expect(CatalogDBException.class); dbAdaptorFactory.getCatalogSampleDBAdaptor().delete(createResult.first().getUid()); }
@Test @Ignore public void deleteSampleFail2Test() throws Exception { long studyId = user3.getProjects().get(0).getStudies().get(0).getUid(); long fileId = dbAdaptorFactory.getCatalogFileDBAdaptor().getId(user3.getProjects().get(0).getStudies().get(0).getUid(), "data/file.vcf"); Sample hg0097 = new Sample("HG0097", "1000g", new Individual(), "A description", 1); QueryResult<Sample> createResult = dbAdaptorFactory.getCatalogSampleDBAdaptor().insert(studyId, hg0097, null); dbAdaptorFactory.getCatalogFileDBAdaptor().update(fileId, new ObjectMap(FileDBAdaptor.QueryParams.SAMPLES.key(), createResult.first().getUid()), QueryOptions.empty()); dbAdaptorFactory.getCatalogSampleDBAdaptor().delete(createResult.first().getUid()); }
@Test public void deleteSampleTest() throws Exception { long studyId = user3.getProjects().get(0).getStudies().get(0).getUid(); Sample hg0097 = new Sample("HG0097", "1000g", new Individual(), "A description", 1); QueryResult<Sample> createResult = dbAdaptorFactory.getCatalogSampleDBAdaptor().insert(studyId, hg0097, null); dbAdaptorFactory.getCatalogSampleDBAdaptor().delete(createResult.first().getUid()); thrown.expect(CatalogDBException.class); thrown.expectMessage("does not exist"); catalogSampleDBAdaptor.get(createResult.first().getUid(), QueryOptions.empty()); }
@Test public void createSampleTest() throws Exception { long studyId = user3.getProjects().get(0).getStudies().get(0).getUid(); Sample hg0097 = new Sample("HG0097", "1000g", new Individual(), "A description", 1); QueryResult<Sample> result = dbAdaptorFactory.getCatalogSampleDBAdaptor().insert(studyId, hg0097, null); assertEquals(hg0097.getId(), result.first().getId()); assertEquals(hg0097.getDescription(), result.first().getDescription()); assertTrue(result.first().getUid() > 0); }
@Test public void testUpdateSampleStats() throws CatalogException { catalogManager.getSampleManager().create(studyFqn, new Sample().setId("HG007"), null, sessionIdUser); QueryResult<Sample> update = catalogManager.getSampleManager().update(studyFqn, "HG007", new ObjectMap (SampleDBAdaptor.QueryParams.STATS.key(), new ObjectMap("one", "two")), new QueryOptions(), sessionIdUser); assertEquals(1, update.first().getStats().size()); assertTrue(update.first().getStats().containsKey("one")); assertEquals("two", update.first().getStats().get("one")); update = catalogManager.getSampleManager().update(studyFqn, "HG007", new ObjectMap(SampleDBAdaptor.QueryParams.STATS.key(), new ObjectMap("two", "three")), new QueryOptions(), sessionIdUser); assertEquals(2, update.first().getStats().size()); }
@Test public void testCreateCohortAlreadyExisting() throws CatalogException { Sample sampleId1 = catalogManager.getSampleManager().create(studyFqn, new Sample().setId("SAMPLE_1"), new QueryOptions(), sessionIdUser).first(); catalogManager.getCohortManager().create(studyFqn, new Cohort().setId("MyCohort").setType(Study.Type.FAMILY) .setSamples(Collections.singletonList(sampleId1)), null, sessionIdUser).first(); thrown.expect(CatalogDBException.class); catalogManager.getCohortManager().create(studyFqn, new Cohort().setId("MyCohort").setType(Study.Type.FAMILY) .setSamples(Collections.singletonList(sampleId1)), null, sessionIdUser).first(); }
@Test public void updateSubjectsNoFamilyTest() throws CatalogException { createDummyEnvironment(false); ObjectMap params = new ObjectMap(ClinicalAnalysisDBAdaptor.QueryParams.PROBAND.key(), new Individual().setId("child1").setSamples(Arrays.asList(new Sample().setId("sample2")))); QueryResult<ClinicalAnalysis> updateResult = catalogManager.getClinicalAnalysisManager().update(STUDY, "analysis", params, QueryOptions.empty(), sessionIdUser); assertEquals(1, updateResult.getNumResults()); assertEquals(0, updateResult.first().getInterpretations().size()); assertEquals(catalogManager.getIndividualManager().getUid("child1", STUDY, sessionIdUser).getResource().getUid(), updateResult.first().getProband().getUid()); assertEquals(1, updateResult.first().getProband().getSamples().size()); assertEquals(catalogManager.getSampleManager().getUid("sample2", STUDY, sessionIdUser).getResource().getUid(), updateResult.first().getProband().getSamples().get(0).getUid()); }
private QueryResult<ClinicalAnalysis> createDummyEnvironment(boolean createFamily) throws CatalogException { createDummyFamily(); ClinicalAnalysis clinicalAnalysis = new ClinicalAnalysis() .setId("analysis").setDescription("My description").setType(ClinicalAnalysis.Type.FAMILY) .setDueDate("20180510100000") .setProband(new Individual().setId("child1").setSamples(Arrays.asList(new Sample().setId("sample2")))); if (createFamily) { clinicalAnalysis.setFamily(new Family().setId("family")); } return catalogManager.getClinicalAnalysisManager().create(STUDY, clinicalAnalysis, QueryOptions.empty(), sessionIdUser); }
@Test public void testModifySample() throws CatalogException { String sampleId1 = catalogManager.getSampleManager() .create(studyFqn, new Sample().setId("SAMPLE_1"), new QueryOptions(), sessionIdUser).first().getId(); String individualId = catalogManager.getIndividualManager().create(studyFqn, new Individual().setId("Individual1"), new QueryOptions(), sessionIdUser).first().getId(); Sample sample = catalogManager.getSampleManager() .update(studyFqn, sampleId1, new ObjectMap(SampleDBAdaptor.QueryParams.INDIVIDUAL.key(), individualId), new QueryOptions("lazy", false), sessionIdUser).first(); assertEquals(individualId, ((Individual) sample.getAttributes().get("individual")).getId()); }
@Test public void searchSamplesByIndividual() throws CatalogException { catalogManager.getIndividualManager().create(studyFqn, new Individual().setId("Individual1") .setSamples(Arrays.asList(new Sample().setId("sample1"), new Sample().setId("sample2"))), new QueryOptions(), sessionIdUser); QueryResult<Sample> sampleQueryResult = catalogManager.getSampleManager().search(studyFqn, new Query(SampleDBAdaptor.QueryParams.INDIVIDUAL.key(), "Individual1"), QueryOptions.empty(), sessionIdUser); assertEquals(2, sampleQueryResult.getNumResults()); sampleQueryResult = catalogManager.getSampleManager().search(studyFqn, new Query().append(SampleDBAdaptor.QueryParams.INDIVIDUAL.key(), "Individual1") .append(SampleDBAdaptor.QueryParams.ID.key(), "sample1"), QueryOptions.empty(), sessionIdUser); assertEquals(1, sampleQueryResult.getNumResults()); catalogManager.getIndividualManager().create(studyFqn, new Individual().setId("Individual2"), new QueryOptions(), sessionIdUser); sampleQueryResult = catalogManager.getSampleManager().search(studyFqn, new Query().append(SampleDBAdaptor.QueryParams.INDIVIDUAL.key(), "Individual2"), QueryOptions.empty(), sessionIdUser); assertEquals(0, sampleQueryResult.getNumResults()); }
@Test public void testDeleteSample() throws CatalogException { long sampleUid = catalogManager.getSampleManager().create(studyFqn, new Sample().setId("SAMPLE_1"), new QueryOptions(), sessionIdUser).first().getUid(); Query query = new Query(SampleDBAdaptor.QueryParams.ID.key(), "SAMPLE_1"); WriteResult delete = catalogManager.getSampleManager().delete("1000G:phase1", query, null, sessionIdUser); assertEquals(1, delete.getNumModified()); query = new Query() .append(SampleDBAdaptor.QueryParams.UID.key(), sampleUid) .append(SampleDBAdaptor.QueryParams.STATUS_NAME.key(), Status.DELETED); QueryResult<Sample> sampleQueryResult = catalogManager.getSampleManager().get("1000G:phase1", query, new QueryOptions(), sessionIdUser); // QueryResult<Sample> sample = catalogManager.getSample(sampleId, new QueryOptions(), sessionIdUser); assertEquals(1, sampleQueryResult.getNumResults()); assertTrue(sampleQueryResult.first().getId().contains("DELETED")); }
@Test public void updateCollectionField() throws CatalogException { catalogManager.getSampleManager().create(studyFqn, new Sample().setId("testSample").setDescription("description"), null, sessionIdUser); SampleCollection collection = new SampleCollection("tissue", "organ", "quantity", "method", "date", Collections.emptyMap()); ObjectMap params = new ObjectMap(SampleDBAdaptor.UpdateParams.COLLECTION.key(), collection); catalogManager.getSampleManager().update(studyFqn, "testSample", params, new QueryOptions(Constants.INCREMENT_VERSION, true), sessionIdUser); QueryResult<Sample> testSample = catalogManager.getSampleManager().get(studyFqn, "testSample", new QueryOptions(), sessionIdUser); assertEquals("tissue", testSample.first().getCollection().getTissue()); assertEquals("organ", testSample.first().getCollection().getOrgan()); assertEquals("quantity", testSample.first().getCollection().getQuantity()); assertEquals("method", testSample.first().getCollection().getMethod()); assertEquals("date", testSample.first().getCollection().getDate()); assertTrue(testSample.first().getCollection().getAttributes().isEmpty()); }
@Test public void updateProcessingField() throws CatalogException { catalogManager.getSampleManager().create(studyFqn, new Sample().setId("testSample").setDescription("description"), null, sessionIdUser); SampleProcessing processing = new SampleProcessing("product", "preparationMethod", "extractionMethod", "labSampleId", "quantity", "date", Collections.emptyMap()); ObjectMap params = new ObjectMap(SampleDBAdaptor.UpdateParams.PROCESSING.key(), processing); catalogManager.getSampleManager().update(studyFqn, "testSample", params, new QueryOptions(Constants.INCREMENT_VERSION, true), sessionIdUser); QueryResult<Sample> testSample = catalogManager.getSampleManager().get(studyFqn, "testSample", new QueryOptions(), sessionIdUser); assertEquals("product", testSample.first().getProcessing().getProduct()); assertEquals("preparationMethod", testSample.first().getProcessing().getPreparationMethod()); assertEquals("extractionMethod", testSample.first().getProcessing().getExtractionMethod()); assertEquals("labSampleId", testSample.first().getProcessing().getLabSampleId()); assertEquals("quantity", testSample.first().getProcessing().getQuantity()); assertEquals("date", testSample.first().getProcessing().getDate()); assertTrue(testSample.first().getProcessing().getAttributes().isEmpty()); }