org.opencb.opencga.core.results.VariantQueryResult.getResult()方法的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(20.1k)|赞(0)|评价(0)|浏览(68)

本文整理了Java中org.opencb.opencga.core.results.VariantQueryResult.getResult()方法的一些代码示例,展示了VariantQueryResult.getResult()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。VariantQueryResult.getResult()方法的具体详情如下:
包路径:org.opencb.opencga.core.results.VariantQueryResult
类名称:VariantQueryResult
方法名:getResult

VariantQueryResult.getResult介绍

暂无

代码示例

代码示例来源:origin: opencb/opencga

@Override
public Long count(Query query) {
  return (long) query(query, null).getResult().size();
}

代码示例来源:origin: opencb/opencga

void processDeNovo(ClinicalAnalysis clinicalAnalysis, Pedigree pedigree, Phenotype phenotype, Query query, Map<String, ReportedVariant> reportedVariantMap, Panel diseasePanel) throws CatalogException, StorageEngineException, IOException {
  VariantQueryResult<Variant> variantQueryResult;
  Map<String, List<String>> probandGenotype = new HashMap<>();
  probandGenotype.put(clinicalAnalysis.getProband().getId(),
      Arrays.asList(ModeOfInheritance.toGenotypeString(ModeOfInheritance.GENOTYPE_0_0)));
  putGenotypesNegated(probandGenotype, query);
  variantQueryResult = variantStorageManager.get(query, QueryOptions.empty(), token);
  List<Variant> deNovoVariantList = ModeOfInheritance.deNovoVariants(pedigree.getProband(),
      variantQueryResult.getResult().iterator());
  // TODO: We need to create another ReportedModeOfInheritance for de novo!!??
  generateReportedVariants(deNovoVariantList, phenotype, diseasePanel, ClinicalProperty.ModeOfInheritance.DE_NOVO,
      reportedVariantMap);
}

代码示例来源:origin: opencb/opencga

@Test
public void testGetSummary() throws Exception {
  VariantQueryResult<Variant> result = variantStorageEngine.get(new Query(),
      new QueryOptions(VariantField.SUMMARY, true)
          .append(QueryOptions.LIMIT, 2000));
  assertEquals(allVariants.getResult().size(), result.getResult().size());
}

代码示例来源:origin: opencb/opencga

protected Iterator<String> variantIdIteratorFromSearch(Query query, int limit, int skip, AtomicLong numTotalResults)
    throws StorageEngineException {
  Iterator<String> variantsIterator;
  QueryOptions queryOptions = new QueryOptions()
      .append(QueryOptions.LIMIT, limit)
      .append(QueryOptions.SKIP, skip)
      .append(QueryOptions.INCLUDE, VariantField.ID.fieldName());
  try {
    // Do not iterate for small queries
    if (limit < 10000) {
      VariantQueryResult<VariantSearchModel> nativeResult = getVariantSearchManager().nativeQuery(dbName, query, queryOptions);
      if (numTotalResults != null) {
        numTotalResults.set(nativeResult.getNumTotalResults());
      }
      variantsIterator = nativeResult.getResult()
          .stream()
          .map(VariantSearchModel::getId)
          .iterator();
    } else {
      VariantSearchSolrIterator nativeIterator = getVariantSearchManager().nativeIterator(dbName, query, queryOptions);
      if (numTotalResults != null) {
        numTotalResults.set(nativeIterator.getNumFound());
      }
      variantsIterator = Iterators.transform(nativeIterator, VariantSearchModel::getId);
    }
  } catch (VariantSearchException | IOException e) {
    throw new VariantQueryException("Error querying " + VariantSearchManager.SEARCH_ENGINE_ID, e);
  }
  return variantsIterator;
}

代码示例来源:origin: opencb/opencga

void processCompoundHeterozygous(ClinicalAnalysis clinicalAnalysis, Pedigree pedigree, Phenotype phenotype, Query query, Map<String, ReportedVariant> reportedVariantMap, Panel diseasePanel) throws Exception {
  VariantQueryResult<Variant> variantQueryResult;
  Map<String, List<String>> probandGenotype;
  // Calculate compound heterozygous
  probandGenotype = new HashMap<>();
  probandGenotype.put(clinicalAnalysis.getProband().getId(),
      Arrays.asList(ModeOfInheritance.toGenotypeString(ModeOfInheritance.GENOTYPE_0_1)));
  putGenotypes(probandGenotype, query);
  for (GenePanel gene : diseasePanel.getDiseasePanel().getGenes()) {
    query.put(VariantQueryParam.ANNOT_XREF.key(), gene);
    variantQueryResult = variantStorageManager.get(query, QueryOptions.empty(), token);
    List<Variant> compoundHetVariantList = ModeOfInheritance.compoundHeterozygosity(pedigree,
        variantQueryResult.getResult().iterator());
    // TODO: We need to create another ReportedModeOfInheritance for compound heterozygous!!??
    generateReportedVariants(compoundHetVariantList, phenotype, diseasePanel,
        ClinicalProperty.ModeOfInheritance.COMPOUND_HETEROZYGOUS, reportedVariantMap);
  }
}

代码示例来源:origin: opencb/opencga

public void checkVariantSearchIndex(VariantDBAdaptor dbAdaptor) throws IOException, VariantSearchException, StorageEngineException {
  QueryOptions queryOptions = new QueryOptions(QueryOptions.LIMIT, 1000);
  Query query = new Query();
  TreeSet<Variant> variantsFromSearch = new TreeSet<>(Comparator.comparing(Variant::toString));
  TreeSet<Variant> variantsFromDB = new TreeSet<>(Comparator.comparing(Variant::toString));
  variantsFromSearch.addAll(variantStorageEngine.getVariantSearchManager().query(DB_NAME, query, queryOptions).getResult());
  variantsFromDB.addAll(dbAdaptor.get(query, queryOptions).getResult());
  assertEquals(variantsFromDB.size(), variantsFromSearch.size());
  assertEquals(variantsFromDB.size(), variantStorageEngine.getVariantSearchManager().count(DB_NAME, query));
  Iterator<Variant> variantsFromSearchIterator = variantsFromSearch.iterator();
  Iterator<Variant> variantsFromDBIterator = variantsFromDB.iterator();
  for (int i = 0; i < variantsFromDB.size(); i++) {
    Variant variantFromDB = variantsFromSearchIterator.next();
    Set<String> studiesFromDB = variantFromDB.getStudies().stream().map(StudyEntry::getStudyId).collect(Collectors.toSet());
    Variant variantFromSearch = variantsFromDBIterator.next();
    Set<String> studiesFromSearch = variantFromSearch.getStudies().stream().map(StudyEntry::getStudyId).collect(Collectors.toSet());
    assertEquals(variantFromDB.toString(), variantFromSearch.toString());
    assertEquals(variantFromDB.toString(), studiesFromDB, studiesFromSearch);
  }
}

代码示例来源:origin: opencb/opencga

@Test
public void testQueryWithIds() throws Exception {
  List<String> variantIds = allVariants.getResult().stream()
      .filter(v -> EnumSet.of(VariantType.SNV, VariantType.SNP).contains(v.getType()))
      .map(Variant::toString)
      .limit(400)
      .collect(Collectors.toList());
  Query query = new Query(SAMPLE.key(), "NA19660")
      .append(ANNOT_CONSERVATION.key(), "gerp>0.2")
      .append(ID.key(), variantIds);
  QueryOptions options = new QueryOptions(USE_SEARCH_INDEX, VariantStorageEngine.UseSearchIndex.YES);
  skipLimit(query, options, 50, true);
}

代码示例来源:origin: opencb/opencga

@Test
public void testGetAllVariants_variantId() {
  int i = 0;
  List<Variant> variants = new ArrayList<>();
  for (Variant variant : allVariants.getResult()) {
    if (i++ % 10 == 0) {
      if (!variant.isSymbolic()) {
        variants.add(variant);
      }
    }
  }
  List<Variant> result = query(new Query(ID.key(), variants), new QueryOptions()).getResult();
  assertTrue(variants.size() > 0);
  List<String> expectedList = variants.stream().map(Object::toString).sorted().collect(Collectors.toList());
  List<String> actualList = result.stream().map(Object::toString).sorted().collect(Collectors.toList());
  for (String expected : expectedList) {
    if (!actualList.contains(expected)) {
      System.out.println("missing expected = " + expected);
    }
  }
  for (String actual : actualList) {
    if (!expectedList.contains(actual)) {
      System.out.println("extra actual = " + actual);
    }
  }
  assertEquals(expectedList, actualList);
}

代码示例来源:origin: opencb/opencga

@Test
public void testRelease() throws Exception {
  List<Variant> variants = query(new Query(), new QueryOptions()).getResult();
  for (Variant variant : variants) {
    Integer minFileId = variant.getStudies().stream()
        .flatMap(s -> s.getFiles().stream())
        .map(FileEntry::getFileId)
        .map(s -> s.substring(30, 35))
        .map(Integer::valueOf)
        .min(Integer::compareTo)
        .orElse(0);
    assertTrue(minFileId > 0);
    int expectedRelease = (minFileId - 12877/*first file loaded*/) / 2/*each release contains 2 files*/ + 1/*base-1*/;
    int release = Integer.valueOf(variant.getAnnotation().getAdditionalAttributes().get("opencga").getAttribute().get("release"));
    assertEquals(expectedRelease, release);
  }
}

代码示例来源:origin: opencb/opencga

private void skipLimit(Query query, QueryOptions options, int batchSize, boolean serverSideSkip) throws StorageEngineException, SolrServerException, IOException {
  Set<String> expectedResults = dbAdaptor.get(query, null).getResult().stream().map(Variant::toString).collect(Collectors.toSet());
  Set<String> results = new HashSet<>();
  int numQueries = (int) Math.ceil(expectedResults.size() / (float) batchSize);
  for (int i = 0; i < numQueries; i++) {
    QueryOptions thisOptions = new QueryOptions(options)
        .append(QueryOptions.SKIP, i * batchSize)
        .append(QueryOptions.LIMIT, batchSize);
    VariantQueryResult<Variant> result = variantStorageEngine.get(query, thisOptions);
    for (Variant variant : result.getResult()) {
      assertTrue(results.add(variant.toString()));
    }
    assertNotEquals(0, result.getNumResults());
  }
  assertEquals(expectedResults, results);
  if (serverSideSkip) {
    long count = mockingDetails(solrClient).getInvocations()
        .stream()
        .filter(invocation -> invocation.getMethod().getName().equals("query"))
        .count();
    System.out.println(SolrClient.class.getName() + ".query(...) invocations : " + count);
    verify(solrClient, atLeast(numQueries)).query(anyString(), any());
  } else {
    verify(solrClient, times(numQueries)).query(anyString(), any());
  }
}

代码示例来源:origin: opencb/opencga

private void generateReportedVariants(VariantQueryResult<Variant> variantQueryResult, Phenotype phenotype, Panel diseasePanel,
                   ClinicalProperty.ModeOfInheritance moi, Penetrance penetrance,
                   Map<String, ReportedVariant> reportedVariantMap) {
  for (Variant variant: variantQueryResult.getResult()) {
    if (!reportedVariantMap.containsKey(variant.getId())) {
      reportedVariantMap.put(variant.getId(), new ReportedVariant(variant.getImpl(), 0, new ArrayList<>(),
          Collections.emptyList(), Collections.emptyMap()));
    }
    ReportedVariant reportedVariant = reportedVariantMap.get(variant.getId());
    // Sanity check
    if (variant.getAnnotation() != null && ListUtils.isNotEmpty(variant.getAnnotation().getConsequenceTypes())) {
      for (ConsequenceType ct: variant.getAnnotation().getConsequenceTypes()) {
        // Create the reported event
        ReportedEvent reportedEvent = new ReportedEvent()
            .setId("JT-PF-" + reportedVariant.getReportedEvents().size())
            .setPhenotypes(Collections.singletonList(phenotype))
            .setConsequenceTypeIds(Collections.singletonList(ct.getBiotype()))
            .setGenomicFeature(new GenomicFeature(ct.getEnsemblGeneId(), ct.getEnsemblTranscriptId(), ct.getGeneName(),
                null, null))
            .setModeOfInheritance(moi)
            .setPanelId(diseasePanel.getDiseasePanel().getId())
            .setPenetrance(penetrance);
        // TODO: add additional reported event fields
        // Add reported event to the reported variant
        reportedVariant.getReportedEvents().add(reportedEvent);
      }
    }
  }
}

代码示例来源:origin: opencb/opencga

public void limitSkip(Query query, QueryOptions options) {
    VariantQueryResult<Variant> expected = query(query, options);
    int numVariants = expected.getNumResults();
//        expected.getResult().forEach(v -> logger.info("expected variant: == " + v));
    for (int batchSize : new int[]{50, 100, 1000}) {
      List<Variant> variants = new ArrayList<>();
      Set<String> variantStr = new HashSet<>();
      for (int i = 0; i < numVariants / batchSize + 1; i++) {
        QueryResult<Variant> result = query(query, new QueryOptions(options)
            .append(QueryOptions.LIMIT, batchSize)
            .append(QueryOptions.SKIP, i * batchSize));
        logger.info("Got " + result.getNumResults() + " results");
        variants.addAll(result.getResult());
        for (Variant variant : result.getResult()) {
          boolean repeated = !variantStr.add(variant.toString());
          assertFalse("Repeated variant! : " + variant.toString(), repeated);
        }
      }
      assertEquals(numVariants, variants.size());
      assertEquals(numVariants, variantStr.size());
      assertEquals(expected.getResult().stream().map(Object::toString).collect(Collectors.toSet()), variantStr);
    }
  }

代码示例来源:origin: opencb/opencga

@Test
public void testGetVariantsByType() {
  Set<Variant> snv = new HashSet<>(query(new Query(VariantQueryParam.TYPE.key(), VariantType.SNV), new QueryOptions()).getResult());
  System.out.println("SNV = " + snv.size());
  snv.forEach(variant -> assertThat(EnumSet.of(VariantType.SNV, VariantType.SNP), hasItem(variant.getType())));
  Set<Variant> not_snv = new HashSet<>(query(new Query(VariantQueryParam.TYPE.key(), "!" + VariantType.SNV), new QueryOptions()).getResult());
  System.out.println("!SNV = " + not_snv.size());
  not_snv.forEach(variant -> assertFalse(EnumSet.of(VariantType.SNV, VariantType.SNP).contains(variant.getType())));
  Set<Variant> snv_snp = new HashSet<>(query(new Query(VariantQueryParam.TYPE.key(), VariantType.SNV + "," + VariantContext.Type.SNP), new QueryOptions()).getResult());
  System.out.println("SNV_SNP = " + snv_snp.size());
  assertEquals(snv_snp, snv);
  Set<Variant> snp = new HashSet<>(query(new Query(VariantQueryParam.TYPE.key(), VariantType.SNP), new QueryOptions()).getResult());
  snp.forEach(variant -> assertEquals(VariantType.SNP, variant.getType()));
  snp.forEach(variant -> assertThat(snv, hasItem(variant)));
  System.out.println("SNP = " + snp.size());
  Set<Variant> indels = new HashSet<>(query(new Query(VariantQueryParam.TYPE.key(), VariantType.INDEL), new QueryOptions()).getResult());
  indels.forEach(variant -> assertEquals(VariantType.INDEL, variant.getType()));
  System.out.println("INDEL = " + indels.size());
  Set<Variant> indels_snp = new HashSet<>(query(new Query(VariantQueryParam.TYPE.key(), VariantType.INDEL + "," + VariantType.SNP), new QueryOptions()).getResult());
  indels_snp.forEach(variant -> assertThat(EnumSet.of(VariantType.INDEL, VariantType.SNP), hasItem(variant.getType())));
  indels_snp.forEach(variant -> assertTrue(indels.contains(variant) || snp.contains(variant)));
  System.out.println("INDEL_SNP = " + indels_snp.size());
  Set<Variant> indels_snv = new HashSet<>(query(new Query(VariantQueryParam.TYPE.key(), VariantType.INDEL + "," + VariantType.SNV), new QueryOptions()).getResult());
  indels_snv.forEach(variant -> assertThat(EnumSet.of(VariantType.INDEL, VariantType.SNP, VariantType.SNV), hasItem(variant.getType())));
  indels_snv.forEach(variant -> assertTrue(indels.contains(variant) || snv.contains(variant)));
  System.out.println("INDEL_SNV = " + indels_snv.size());
}

代码示例来源:origin: opencb/opencga

allVariants = dbAdaptor.get(query, QUERY_OPTIONS).getResult();
assertEquals(2, allVariants.size());
allVariants = dbAdaptor.get(query, QUERY_OPTIONS).getResult();
assertEquals(4, allVariants.size());
allVariants = dbAdaptor.get(query, QUERY_OPTIONS).getResult();
assertEquals(5, allVariants.size());
allVariants = dbAdaptor.get(query, QUERY_OPTIONS).getResult();
checkLoadedVariants(allVariants, mapFileIds.get(chr));

代码示例来源:origin: opencb/opencga

@SuppressWarnings("unchecked")
public <T> VariantQueryResult<T> get(Query query, QueryOptions queryOptions, String sessionId, Class<T> clazz)
    throws CatalogException, IOException, StorageEngineException {
  VariantQueryResult<Variant> result = get(query, queryOptions, sessionId);
  List<T> variants;
  if (clazz == Variant.class) {
    return (VariantQueryResult<T>) result;
  } else if (clazz == org.ga4gh.models.Variant.class) {
    Ga4ghVariantConverter<org.ga4gh.models.Variant> converter = new Ga4ghVariantConverter<>(new AvroGa4GhVariantFactory());
    variants = (List<T>) converter.apply(result.getResult());
  } else if (clazz == ga4gh.Variants.Variant.class) {
    Ga4ghVariantConverter<ga4gh.Variants.Variant> converter = new Ga4ghVariantConverter<>(new ProtoGa4GhVariantFactory());
    variants = (List<T>) converter.apply(result.getResult());
  } else {
    throw new IllegalArgumentException("Unknown variant format " + clazz);
  }
  return new VariantQueryResult<>(
      result.getId(),
      result.getDbTime(),
      result.getNumResults(),
      result.getNumTotalResults(),
      result.getWarningMsg(),
      result.getErrorMsg(),
      variants,
      result.getSamples(),
      result.getSource(),
      result.getApproximateCount(),
      result.getApproximateCountSamplingSize());
}

代码示例来源:origin: opencb/opencga

private static void printVcf(StudyConfiguration studyConfiguration, VariantHadoopDBAdaptor dbAdaptor, Path outDir) throws IOException {
  try (OutputStream os = new FileOutputStream(outDir.resolve("variant." + studyConfiguration.getStudyName() + ".vcf").toFile())) {
    Query query = new Query(VariantQueryParam.STUDY.key(), studyConfiguration.getStudyName()).append(VariantQueryParam.UNKNOWN_GENOTYPE.key(), ".");
    QueryOptions queryOptions = new QueryOptions();
    DataWriter<Variant> writer = new VariantWriterFactory(dbAdaptor).newDataWriter(VariantWriterFactory.VariantOutputFormat.VCF, os, query, queryOptions);
    writer.open();
    writer.pre();
    writer.write(dbAdaptor.get(query, queryOptions).getResult());
    writer.post();
    writer.close();
  }
}

代码示例来源:origin: opencb/opencga

@Test
public void testInsertMultiFilesMultiMerge() throws StorageEngineException {
  List<Variant> allVariants;
  studyConfiguration.getAttributes().put(VariantStorageEngine.Options.EXTRA_GENOTYPE_FIELDS.key(), Arrays.asList("GQX", "DP"));
  studyConfiguration.getAttributes().put(VariantStorageEngine.Options.EXTRA_GENOTYPE_FIELDS_TYPE.key(), Arrays.asList("Float", "Integer"));
  studyConfiguration2.getAttributes().put(VariantStorageEngine.Options.EXTRA_GENOTYPE_FIELDS.key(), Arrays.asList("DP", "GQX"));
  studyConfiguration2.getAttributes().put(VariantStorageEngine.Options.EXTRA_GENOTYPE_FIELDS_TYPE.key(), Arrays.asList("Integer", "Float"));
  assertEqualsResult(new MongoDBVariantWriteResult(3, 0, 0, 0, 0, 0), loadFile1());
  allVariants = dbAdaptor.get(query, QUERY_OPTIONS).getResult();
  assertEquals(3, allVariants.size());
  MongoDBVariantWriteResult writeResult = new MongoDBVariantWriteResult();
  writeResult.merge(stageVariants(studyConfiguration2, createFile2Variants(), fileId2));
  writeResult.merge(stageVariants(studyConfiguration2, createFile3Variants(), fileId3));
  writeResult = mergeVariants(studyConfiguration2, Arrays.asList(fileId2, fileId3), writeResult, Collections.emptyList());
  assertEqualsResult(new MongoDBVariantWriteResult(2, 2, 0, 0, 0, 0), writeResult);
  allVariants = dbAdaptor.get(query, QUERY_OPTIONS).getResult();
  assertEquals(5, allVariants.size());
  checkLoadedVariants(allVariants);
}

代码示例来源:origin: opencb/opencga

@Test
public void testIncludeFiles() throws Exception {
  query = new Query()
      .append(VariantQueryParam.INCLUDE_STUDY.key(), "S_1")
      .append(VariantQueryParam.INCLUDE_FILE.key(), file12877);
  queryResult = query(query, options);
  assertEquals(dbAdaptor.count(null).first().intValue(), queryResult.getNumResults());
  for (Variant variant : queryResult.getResult()) {
    assertTrue(variant.getStudies().size() <= 1);
    StudyEntry s_1 = variant.getStudy("S_1");
    if (s_1 != null) {
      assertTrue(s_1.getFiles().size() <= 1);
      if (s_1.getFiles().size() == 1) {
        assertNotNull(s_1.getFile(file12877));
      }
    }
    assertTrue(variant.getStudies().size() <= 1);
  }
  assertThat(queryResult, everyResult(allOf(not(withStudy("S_2")), not(withStudy("S_3")), not(withStudy("S_4")))));
}

代码示例来源:origin: opencb/opencga

@Test
public void testExcludeAnnotationParts() {
  List<Variant> allVariants = query(new Query(), new QueryOptions(QueryOptions.SORT, true)).getResult();
  queryResult = query(new Query(), new QueryOptions(QueryOptions.SORT, true).append(QueryOptions.EXCLUDE, VariantField.ANNOTATION_XREFS));
  assertEquals(allVariants.size(), queryResult.getResult().size());
  List<Variant> result = queryResult.getResult();
  for (int i = 0; i < result.size(); i++) {
    Variant expectedVariant = allVariants.get(i);
    Variant variant = result.get(i);
    assertEquals(expectedVariant.toString(), variant.toString());
    assertNotNull(expectedVariant.getAnnotation());
    assertNotNull(variant.getAnnotation());
    VariantAnnotation expectedAnnotation = expectedVariant.getAnnotation();
    VariantAnnotation annotation = variant.getAnnotation();
    expectedAnnotation.setXrefs(null);
    expectedAnnotation.setId(null);
    assertEquals("\n" + expectedAnnotation + "\n" + annotation, expectedAnnotation, annotation);
  }
}

代码示例来源:origin: opencb/opencga

private void checkQueryGenotypes(VariantHadoopDBAdaptor dbAdaptor) {
  StudyConfiguration sc = dbAdaptor.getStudyConfigurationManager().getStudyConfiguration(STUDY_ID, null).first();
  List<Variant> allVariants = dbAdaptor.get(new Query(), new QueryOptions()).getResult();
  for (String sample : StudyConfiguration.getIndexedSamples(sc).keySet()) {
    VariantQueryResult<Variant> queryResult = dbAdaptor.get(new Query(VariantQueryParam.SAMPLE.key(), sample)
        .append(VariantQueryParam.INCLUDE_SAMPLE.key(), VariantQueryUtils.ALL)
        .append(VariantQueryParam.INCLUDE_FILE.key(), VariantQueryUtils.ALL), new QueryOptions("explain", true));
    assertThat(queryResult, everyResult(allVariants,
        withStudy(STUDY_NAME,
            withSampleData(sample, "GT", containsString("1")))));
  }
}

相关文章