Query sampleQuery = new Query(SampleDBAdaptor.QueryParams.RELEASE.key(), "<=" + release); QueryOptions sampleOptions = new QueryOptions(INCLUDE, SampleDBAdaptor.QueryParams.UID.key()); String sampleAnnotation = query.getString(SAMPLE_ANNOTATION.key()); Query sampleQuery = parseSampleAnnotationQuery(sampleAnnotation, SampleDBAdaptor.QueryParams::getParam); sampleQuery.append(SampleDBAdaptor.QueryParams.STUDY_UID.key(), defaultStudyStr); QueryOptions options = new QueryOptions(INCLUDE, SampleDBAdaptor.QueryParams.UID); List<String> sampleIds = catalogManager.getSampleManager().get(defaultStudyStr, sampleQuery, options, sessionId) new Query(SampleDBAdaptor.QueryParams.UID.key(), sampleUids), new QueryOptions(INCLUDE, Arrays.asList( SampleDBAdaptor.QueryParams.ID.key(), SampleDBAdaptor.QueryParams.UID.key())), sessionId) .getResult();
fixComplexQueryParam(QueryParams.ATTRIBUTES.key(), queryCopy); fixComplexQueryParam(QueryParams.BATTRIBUTES.key(), queryCopy); fixComplexQueryParam(QueryParams.NATTRIBUTES.key(), queryCopy); QueryParams queryParam = QueryParams.getParam(entry.getKey()) != null ? QueryParams.getParam(entry.getKey()) : QueryParams.getParam(key); if (queryParam == null) { if (Constants.ALL_VERSIONS.equals(entry.getKey()) || Constants.PRIVATE_ANNOTATION_PARAM_TYPES.equals(entry.getKey())) { switch (queryParam) { case UID: addAutoOrQuery(PRIVATE_UID, queryParam.key(), queryCopy, queryParam.type(), andBsonList); break; case STUDY_UID: addAutoOrQuery(PRIVATE_STUDY_ID, queryParam.key(), queryCopy, queryParam.type(), andBsonList); break; case ATTRIBUTES: addAutoOrQuery(entry.getKey(), entry.getKey(), queryCopy, queryParam.type(), andBsonList); break; case BATTRIBUTES: String mongoKey = entry.getKey().replace(QueryParams.BATTRIBUTES.key(), QueryParams.ATTRIBUTES.key()); addAutoOrQuery(mongoKey, entry.getKey(), queryCopy, queryParam.type(), andBsonList); break; case NATTRIBUTES: mongoKey = entry.getKey().replace(QueryParams.NATTRIBUTES.key(), QueryParams.ATTRIBUTES.key()); addAutoOrQuery(mongoKey, entry.getKey(), queryCopy, queryParam.type(), andBsonList); break; case PHENOTYPES: addOntologyQueryFilter(queryParam.key(), queryParam.key(), queryCopy, andBsonList);
finalQuery.append(SampleDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid()); .append(SampleDBAdaptor.QueryParams.UID.key(), sample.getUid()) .append(SampleDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid()); ObjectMap updateParams = new ObjectMap() .append(SampleDBAdaptor.QueryParams.STATUS_NAME.key(), Status.DELETED) .append(SampleDBAdaptor.QueryParams.ID.key(), sample.getId() + suffixName); QueryResult<Long> update = sampleDBAdaptor.update(updateQuery, updateParams, QueryOptions.empty()); if (update.first() > 0) {
new Query(SampleDBAdaptor.QueryParams.ID.key(), "s_1,s_3,s_4"), null, sessionIdUser).getResult() .stream() .map(Sample::getId)
List<String> includeSampleNameId = Arrays.asList(SampleDBAdaptor.QueryParams.UID.key(), SampleDBAdaptor.QueryParams.ID.key()); if (file.getSamples() == null || file.getSamples().isEmpty()) { Query sampleQuery = new Query(SampleDBAdaptor.QueryParams.ID.key(), sortedSampleNames); sampleList = catalogManager.getSampleManager().get(study.getFqn(), sampleQuery, sampleQueryOptions, sessionId).getResult(); .setSource(file.getName()), null, sessionId).first()); } catch (CatalogException e) { Query query = new Query(SampleDBAdaptor.QueryParams.ID.key(), sampleName); QueryOptions queryOptions = new QueryOptions(QueryOptions.INCLUDE, includeSampleNameId); if (catalogManager.getSampleManager().get(study.getFqn(), query, queryOptions, sessionId).getResult() Query query = new Query(SampleDBAdaptor.QueryParams.ID.key(), file.getSamples().stream().map(Sample::getId) .collect(Collectors.toList())); sampleList = catalogManager.getSampleManager().get(study.getFqn(), query, new QueryOptions(), sessionId).getResult();
.append(SampleDBAdaptor.QueryParams.STUDY_UID.key(), studyUid) .append(SampleDBAdaptor.QueryParams.UID.key(), individualMap.keySet()); QueryOptions queryOptions = new QueryOptions() .append(NATIVE_QUERY, true) .append(SampleDBAdaptor.QueryParams.STUDY_UID.key(), studyUid) .append(SampleDBAdaptor.QueryParams.UID.key(), uidList) .append(SampleDBAdaptor.QueryParams.VERSION.key(), versionList); List<Document> sampleList; try {
finalQuery.append(SampleDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid());
Query samplesQuery = new Query(SampleDBAdaptor.QueryParams.ID.key(), new LinkedList<>(ped.getIndividuals().keySet())); Map<String, Sample> loadedSamples = new HashMap<>(); for (Sample sample : catalogManager.getSampleManager().get(study.getFqn(), samplesQuery, null, sessionId).getResult()) { .getFields()); catalogManager.getSampleManager().update(study.getFqn(), entry.getValue().getId(), new ObjectMap() .append(SampleDBAdaptor.QueryParams.ANNOTATION_SETS.key(), Collections.singletonList(new ObjectMap() .append(AnnotationSetManager.ID, "pedigreeAnnotation") .append(AnnotationSetManager.VARIABLE_SET_ID, variableSet.getId()) new Query(SampleDBAdaptor.QueryParams.ANNOTATION.key(), Constants.VARIABLE_SET + "=" + variableSetId), null, sessionId); return new QueryResult<>("loadPedigree", (int) (System.currentTimeMillis() - startTime), sampleMap.size(), sampleMap.size(), null, null, sampleQueryResult.getResult());
QueryOptions.empty(), sessionIdUser); QueryResult<Sample> sampleQueryResult = catalogManager.getSampleManager().get(studyFqn, sampleId1, new QueryOptions(QueryOptions.INCLUDE, SampleDBAdaptor.QueryParams.ANNOTATION_SETS.key()), sessionIdUser); assertEquals(1, sampleQueryResult.first().getAnnotationSets().size()); QueryOptions.empty(), sessionIdUser); sampleQueryResult = catalogManager.getSampleManager().get(studyFqn, sampleId2, new QueryOptions(QueryOptions.INCLUDE, SampleDBAdaptor.QueryParams.ANNOTATION_SETS.key()), sessionIdUser); assertEquals(1, sampleQueryResult.first().getAnnotationSets().size()); Query query = new Query(SampleDBAdaptor.QueryParams.ANNOTATION.key(), vs1.getId() + ":nestedObject.stringList=li"); samples = catalogManager.getSampleManager().get(studyFqn, query, null, sessionIdUser).getResult(); assertEquals(1, samples.size()); query.put(SampleDBAdaptor.QueryParams.ANNOTATION.key(), vs1.getId() + ":nestedObject.stringList=lo"); samples = catalogManager.getSampleManager().get(studyFqn, query, null, sessionIdUser).getResult(); assertEquals(1, samples.size()); query.put(SampleDBAdaptor.QueryParams.ANNOTATION.key(), vs1.getId() + ":nestedObject.stringList=LL"); samples = catalogManager.getSampleManager().get(studyFqn, query, null, sessionIdUser).getResult(); assertEquals(0, samples.size()); query.put(SampleDBAdaptor.QueryParams.ANNOTATION.key(), vs1.getId() + ":nestedObject.stringList=lo,li,LL"); samples = catalogManager.getSampleManager().get(studyFqn, query, null, sessionIdUser).getResult(); assertEquals(2, samples.size()); query.put(SampleDBAdaptor.QueryParams.ANNOTATION.key(), vs1.getId() + ":nestedObject.object.string=my value"); samples = catalogManager.getSampleManager().get(studyFqn, query, null, sessionIdUser).getResult(); assertEquals(1, samples.size());
if (!existingSampleIds.isEmpty()) { Query sampleQuery = new Query().append(SampleDBAdaptor.QueryParams.UID.key(), existingSampleIds); QueryOptions sampleOptions = new QueryOptions(QueryOptions.INCLUDE, Arrays.asList( SampleDBAdaptor.QueryParams.UID.key(), SampleDBAdaptor.QueryParams.VERSION.key()));
if (parameters.containsKey(SampleDBAdaptor.QueryParams.ANNOTATION_SETS.key())) { authorizationManager.checkSamplePermission(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(), SampleAclEntry.SamplePermissions.WRITE_ANNOTATIONS); if ((parameters.size() == 1 && !parameters.containsKey(SampleDBAdaptor.QueryParams.ANNOTATION_SETS.key())) || parameters.size() > 1) { authorizationManager.checkSamplePermission(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(), if (StringUtils.isNotEmpty(parameters.getString(SampleDBAdaptor.QueryParams.INDIVIDUAL.key()))) { Individual individual = null; String individualStr = parameters.getString(SampleDBAdaptor.QueryParams.INDIVIDUAL.key()); parameters.remove(SampleDBAdaptor.QueryParams.INDIVIDUAL.key());
QueryOptions.empty(), sessionIdUser); QueryResult<Sample> sampleQueryResult = catalogManager.getSampleManager().get(studyFqn, sampleId, new QueryOptions(QueryOptions.INCLUDE, SampleDBAdaptor.QueryParams.ANNOTATION_SETS.key()), sessionIdUser); assertEquals(1, sampleQueryResult.first().getAnnotationSets().size()); QueryOptions.empty(), sessionIdUser); sampleQueryResult = catalogManager.getSampleManager().get(studyFqn, sampleId, new QueryOptions(QueryOptions.INCLUDE, SampleDBAdaptor.QueryParams.ANNOTATION_SETS.key()), sessionIdUser); assertEquals(2, sampleQueryResult.first().getAnnotationSets().size()); QueryOptions.empty(), sessionIdUser); sampleQueryResult = catalogManager.getSampleManager().get(studyFqn, sampleId, new QueryOptions(QueryOptions.INCLUDE, SampleDBAdaptor.QueryParams.ANNOTATION_SETS.key()), sessionIdUser); assertEquals(3, sampleQueryResult.first().getAnnotationSets().size()); QueryOptions.empty(), sessionIdUser); sampleQueryResult = catalogManager.getSampleManager().get(studyFqn, sampleId, new QueryOptions(QueryOptions.INCLUDE, SampleDBAdaptor.QueryParams.ANNOTATION_SETS.key()), sessionIdUser); assertEquals(4, sampleQueryResult.first().getAnnotationSets().size());
QueryOptions.empty(), sessionIdUser); QueryResult<Sample> sampleQueryResult = catalogManager.getSampleManager().get(studyFqn, sampleId, new QueryOptions(QueryOptions.INCLUDE, SampleDBAdaptor.QueryParams.ANNOTATION_SETS.key()), sessionIdUser); assertEquals(1, sampleQueryResult.first().getAnnotationSets().size()); QueryOptions.empty(), sessionIdUser); sampleQueryResult = catalogManager.getSampleManager().get(studyFqn, sampleId, new QueryOptions(QueryOptions.INCLUDE, SampleDBAdaptor.QueryParams.ANNOTATION_SETS.key()), sessionIdUser); assertEquals(2, sampleQueryResult.first().getAnnotationSets().size()); QueryOptions.empty(), sessionIdUser); sampleQueryResult = catalogManager.getSampleManager().get(studyFqn, sampleId, new QueryOptions(QueryOptions.INCLUDE, SampleDBAdaptor.QueryParams.ANNOTATION_SETS.key()), sessionIdUser); assertEquals(3, sampleQueryResult.first().getAnnotationSets().size()); QueryOptions.empty(), sessionIdUser); sampleQueryResult = catalogManager.getSampleManager().get(studyFqn, sampleId, new QueryOptions(QueryOptions.INCLUDE, SampleDBAdaptor.QueryParams.ANNOTATION_SETS.key()), sessionIdUser); assertEquals(4, sampleQueryResult.first().getAnnotationSets().size());
.append(SampleDBAdaptor.QueryParams.ID.key(), "testSample") .append(Constants.ALL_VERSIONS, true); QueryResult<Sample> sampleQueryResult = catalogManager.getSampleManager().get(studyFqn, query, null, sessionIdUser); .append(SampleDBAdaptor.QueryParams.ID.key(), "testSample") .append(SampleDBAdaptor.QueryParams.SNAPSHOT.key(), 1); sampleQueryResult = catalogManager.getSampleManager().get(studyFqn, query, null, sessionIdUser); assertEquals(1, sampleQueryResult.getNumResults()); .append(SampleDBAdaptor.QueryParams.ID.key(), "testSample") .append(SampleDBAdaptor.QueryParams.SNAPSHOT.key(), 2); sampleQueryResult = catalogManager.getSampleManager().get(studyFqn, query, null, sessionIdUser); assertEquals(1, sampleQueryResult.getNumResults()); .append(SampleDBAdaptor.QueryParams.ID.key(), "testSample"); sampleQueryResult = catalogManager.getSampleManager().get(studyFqn, query, null, sessionIdUser); assertEquals(1, sampleQueryResult.getNumResults()); .append(SampleDBAdaptor.QueryParams.ID.key(), "testSample") .append(SampleDBAdaptor.QueryParams.VERSION.key(), 2); sampleQueryResult = catalogManager.getSampleManager().get(studyFqn, query, null, sessionIdUser); assertEquals(1, sampleQueryResult.getNumResults()); .append(SampleDBAdaptor.QueryParams.ID.key(), "testSample") .append(SampleDBAdaptor.QueryParams.VERSION.key(), 1); sampleQueryResult = catalogManager.getSampleManager().get(studyFqn, query, null, sessionIdUser); assertEquals(1, sampleQueryResult.getNumResults());
ObjectMap updateAnnotation = new ObjectMap() .append(SampleDBAdaptor.QueryParams.ANNOTATION_SETS.key(), Arrays.asList( new ObjectMap(jsonObjectMapper.writeValueAsString(annotationSet)) ));
catalogManager.getIndividualManager().create(studyFqn, new Individual().setId(ind2), QueryOptions.empty(), ownerSessionId); catalogManager.getSampleManager().update(studyFqn, smp1.getId(), new ObjectMap(SampleDBAdaptor.QueryParams.INDIVIDUAL.key(), ind1), QueryOptions.empty(), ownerSessionId); catalogManager.getSampleManager().update(studyFqn, smp2.getId(), new ObjectMap(SampleDBAdaptor.QueryParams.INDIVIDUAL.key(), ind2), QueryOptions.empty(), ownerSessionId);
sampleUidMap.put(sampleDocument.getLong(SampleDBAdaptor.QueryParams.UID.key()), sampleDocument); individual.remove(IndividualMongoDBAdaptor.QueryParams.SAMPLES.key()); samples.forEach(s -> { long uid = s.getLong(SampleDBAdaptor.QueryParams.UID.key()); Document attributes = (Document) sample.get(SampleDBAdaptor.QueryParams.ATTRIBUTES.key()); if (attributes == null) { attributes = new Document(); sample.put(SampleDBAdaptor.QueryParams.ATTRIBUTES.key(), attributes); attributes.put(SampleDBAdaptor.QueryParams.INDIVIDUAL.key(), individual);
field -> !field.equals(SampleDBAdaptor.QueryParams.VERSION.key()) && !field.equals(SampleDBAdaptor.QueryParams.UID.key()) ); if (includeAdditionalFields) { includeList.add(SampleDBAdaptor.QueryParams.VERSION.key()); includeList.add(SampleDBAdaptor.QueryParams.UID.key()); queryOptions.put(QueryOptions.INCLUDE, includeList); } else { if (exclude.startsWith(CohortDBAdaptor.QueryParams.SAMPLES.key() + ".")) { String replace = exclude.replace(CohortDBAdaptor.QueryParams.SAMPLES.key() + ".", ""); if (!SampleDBAdaptor.QueryParams.UID.key().equals(replace) && !SampleDBAdaptor.QueryParams.VERSION.key().equals(replace)) { excludeList.add(replace);